Vim 复制粘贴详解

回忆上节课内容🤔

关于复制

  • 复制其实就在粘贴上面一点点
  • 往上翻就可以找到
  • 命令是y
  • 对应的单词是 yank 
  • 什么意思呢
    • "to pull, jerk," 1822, Scottish, of unknown origin. Related: Yanked; yanking. The noun is 1818 in sense of "sudden blow, cuff;" 1856 (American English) as "a sudden pull."
    • 来自于苏格兰语
    • 意思是猛的拉过来
    • 拉到哪里?
      • 拉到默认寄存器register ""

图片描述

具体操作

  • 找到一行 然后进行yy操作
  • 观察:reg发现这一行已经进入了寄存器
  • 找到一个合适的地方p
    • 可以把寄存器里面的内容放到当前行下面
  • 再找到一个位置P
    • 可以把寄存器里面的内容放到当前行上面
  • 加上[count]翻倍因素
    • 来他个10yy
  • 再观察:reg
  • 注意换行标识符为^J

图片描述

配合移动

  • y之后加一个motion
  • motion 那一大套还是都可以用的
  • 我们再来重温一遍👁
    • 首行g g 、末行G 、第n行n G
    • 光标运动的方式是h j k l
    • 单词运动wbe
      • w 是到下一个word的开头
      • b 是到当前word的开头
      • e 是到当前word的结尾
      • 除了word之外还有WORD
    • 行头行尾
      • ^ 是到本行第一个非空字符
      • 0 是到本行第一个字符,不管是不是空格
      • g_ 是到本行最后一个非空字符
      • $ 跳到本行最后一个字符,即使他是空格
    • 行内跳跃和贴靠
      • 跳跃是f
      • 跳跃是F
      • 贴靠是t
      • 贴靠是T
    • 全文查找
      • 查找的话就是/
      • 反向查找的话就是?
    • 文本区块
      • {}按段落移动
      • ()按句子移动

具体复制

  • 比如我们可以
    • y$
    • y4j
    • yf(
    • yt)
    • y/}
    • 具体啥意思
  • 注意复制内容中有没有换行的区别
  • 其实就和d到的寄存器内容是一样的

跨服务器复制粘贴

  • 还有一种复制粘贴是跨服务器的复制粘贴
    • 内容在本机的系统剪贴板上
    • 在终端上用粘贴命令进行粘贴
    • 或者在一个终端上把内容选择复制到终端所在机器的系统剪切板
    • 然后再粘贴到别的机器上
  • 这个时候注意两点
    • :set paste?
      • 看看粘贴选项是什么
      • 如果缩进有问题
      • 那就调整一下再试
    • :se nonu
      • 如果把行号也复制进入去了
      • 那就需要取消行号显示
  • 如果所需要复制的东西超过终端的容量
    • 那就需要用scp命令远程拷贝
    • 可以参见oeasy教您玩转linux 000222话

总结

  • 我们这次的内容是复制
    • d就是把东西delete到寄存器里,就是剪切
    • y就是把东西yank到寄存器里,就是复制
  • yank也可以配合motion
  • 不管是yankdelete都是把东西放到默认寄存器
  • 到底什么是寄存器
  • 有什么可玩的呢?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

Web协议详解与抓包实战 -〔陶辉〕

苏杰的产品创新课 -〔苏杰〕

安全攻防技能30讲 -〔何为舟〕

说透敏捷 -〔宋宁〕

etcd实战课 -〔唐聪〕

跟着高手学复盘 -〔张鹏〕

操作系统实战45讲 -〔彭东〕

后端工程师的高阶面经 -〔邓明〕

互联网人的数字化企业生存指南 -〔沈欣〕