oeasy教您玩转vim - 39 - # 剪切粘贴

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述oeasy教您玩转vim - 39 - # 剪切粘贴相关的知识,希望能为你提供帮助。
剪切粘贴 回忆上节课内容????

  • 我们大幅度地复习了整个 motion
  • 直接运动
    • < kbd> h< /kbd> < kbd> j< /kbd> < kbd> k< /kbd> < kbd> l< /kbd>
  • 行运动
    • 首行< kbd> g< /kbd> < kbd> g< /kbd>
    • 末行< kbd> G< /kbd>
    • 第n行< kbd> n< /kbd> < kbd> G< /kbd>
  • 单词运动 wbe
    • < kbd> w< /kbd> 是到下一个 word 的开头
    • < kbd> b< /kbd> 是到当前 word 的开头
    • < kbd> e< /kbd> 是到当前 word 的结尾
    • 除了 word 之外还有 WORD
  • 行头行尾
    • < kbd> ^< /kbd> 是到本行第一个非空字符
    • < kbd> 0< /kbd> 是到本行第一个字符,不管是不是空格
    • < kbd> g< /kbd> < kbd> _< /kbd> 是到本行最后一个非空字符
    • < kbd> $< /kbd> 跳到本行最后一个字符,即使他是空格
  • 行内跳跃和贴靠
    • 跳跃是< kbd> f< /kbd>
    • 跳跃是< kbd> F< /kbd>
    • 贴靠是< kbd> t< /kbd>
    • 贴靠是< kbd> T< /kbd>
  • 全文查找
    • 查找的话就是 < kbd> /< /kbd>
    • 反向查找的话就是 < kbd> ?< /kbd>
  • 文本区块
    • < kbd> {< /kbd> 、< kbd> }< /kbd> 按段落移动
    • < kbd> (< /kbd> 、< kbd> )< /kbd> 按句子移动
  • 这些 motion 都可以 < kbd> d< /kbd> 配合使用,完成快速删除的工作
  • 过程中还可以使用 [count] 进行翻倍
  • 删除的内容,放在 "" 寄存器中
  • 可以配合重复< kbd> .< /kbd>
  • 而且以前的一些命令可以有了新的理解
回忆过去
  • 一些原来的操作可以有了新的写法
    • D 对应的d$
    • x 对应 dl
    • X 对应 dh
    • 体会多多运动左手无名指的快乐
  • 删除的内容,放在 "" 寄存器中
  • 那这个东西删了
  • 放在寄存器里
  • 我想粘贴到别的地方
  • 怎么办呢?????
关于粘贴
  • 粘贴的话,应该离这个删除 d 的位置不远
  • h d 找到剪切的帮助文件在 change.txt
  • 文件中的 5.copying and moving text
  • 可以找到 < kbd> p< /kbd> 应该就是粘贴对应的命令
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 不是 paste
  • p 对应的是 put 放上去
  • 把什么放上去呢?
  • d 到寄存器的东西放上去
动手 ????
  • 我们试一试
    • 我们输入一行 oeasy 然后对他进行 < kbd> d< /kbd> < kbd> d< /kbd>
    • 这个时候 oeasy 这一行就进入了寄存器 ""
    • 然后 < kbd> p< /kbd> 一下,就会出现一个 oeasy
    • < kbd> 9< /kbd> < kbd> p< /kbd> 就会出现 9oeasy
    • 真的可以!!!????
  • 但是这里面有两个 < kbd> p< /kbd>
    • 一个叫做 < kbd> p< /kbd> 说是 after cursor
    • 另一个叫做 < kbd> P< /kbd> 说是 before cursor
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 啥意思呢?
上下
  • 先都删除 < kbd> g< /kbd> < kbd> g< /kbd> < kbd> d< /kbd> < kbd> G< /kbd>
  • 我们首先把标尺调出来 :ru
  • 然后插入 191
    • < kbd> 9< /kbd>
    • < kbd> i< /kbd> 进入插入模式
    • 输入 1
    • < kbd> esc< /kbd> 退回到普通模式
    • < kbd> o< /kbd> 换行回车
  • 然后再插入 192
    • 先< kbd> esc< /kbd> 进入正常模式(目的是打断输入状态)
    • < kbd> i< /kbd> 进入插入模式
    • 输入2
    • < kbd> esc< /kbd> 退回到普通模式
    • < kbd> 8< /kbd> < kbd> .< /kbd>
    • 把插入2这个事重复8
    • < kbd> o< /kbd> 换行
    • < kbd> esc< /kbd>
  • 然后再尝试插入 13
    • 方法和上面一样
  • 最后插入一行 oeasy
    • 并用< kbd> d< /kbd> < kbd> d< /kbd> 把他删除
    • 也就是把他放到了 "" 默认寄存器里面了
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

体会上下
  • 我们把光标移动到第 2
  • < kbd> p< /kbd> 这个时候
  • 寄存器""中的oeasy会放到2222222...
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 用< kbd> u< /kbd> 撤销刚才的操作
  • 我们再试试 < kbd> P< /kbd> ,大写的这个
    • 我们把光标移动到第2
    • < kbd> P< /kbd> 这个时候
    • 寄存器 "" 中的 oeasy 会放到 2222222...
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 他怎么知道这是一行?
细节
  • 如果寄存器里面的不是一整行呢?????
  • 我们先:reg看一下寄存器""
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 寄存器中除了oeasy还有个^J意思是包括换行符
  • 我们这次不用< kbd> d< /kbd> < kbd> d< /kbd>
  • 我们用< kbd> d< /kbd> < kbd> $< /kbd>
    • motion$意味着到行尾
    • 这样就把oeasy放进了寄存器""
    • 看一下:reg
    • ^J 换行这个消失了!
    • p一把!
【oeasy教您玩转vim - 39 - # 剪切粘贴】
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 这个p也分大小写么?
    前后
  • 把光标移动到222222...52
  • 然后< kbd> p< /kbd>
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • 他就在第52 后面 插入寄存器内容
  • < kbd> u< /kbd> 回来,还放在第52
  • 然后< kbd> P< /kbd>
  • 他就在第52 前面 插入
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

常规操作
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • dw是删除单词
    • 这里删的没有换行符
    • 注意把后面的空格也删除了
    • 一并放入寄存器
  • wel是移动位置
    • 下一个word头 到 to的t
    • 下个word尾 到 to的o
    • 向右一格 到空格
  • p是粘贴到光标之后
常用的交换字符
oeasy教您玩转vim - 39 - # 剪切粘贴

文章图片

  • x删除当前字符
  • p是在后面粘贴
总结
  • 我们这次的内容是粘贴
  • 粘贴的内容是:reg中的内容
  • 内容放在""寄存器中
  • 如果:reg删除的是一整行或者多行
    • 那么粘贴的时候就在当前行上面或者下面粘贴
  • 如果:reg删除的是不包括换行符
    • 那么粘贴的时候就在当前位置前面或者后面粘贴
  • < kbd> p< /kbd>
    • 如果剪贴板里面是行
      • 那么在光标下面粘贴
    • 如果剪贴板里面不是行
      • 那么在光标后面粘贴
  • < kbd> P< /kbd>
    • 如果剪贴板里面是行
      • 那么在光标上面粘贴
    • 如果剪贴板里面不是行
      • 那么在光标前面粘贴
  • 大小写对应的是粘贴位置
  • 有了删除和粘贴,我们其实可以做剪切的操作了
  • 但是如果我想要复制粘贴,那应该怎么办呢?????
  • 下次再说 ????
[Github地址] (https://github.com/overmind1980/vimtutorial)
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

    推荐阅读