oeasy教您玩转vim - 41 - # 各寄存器

行是知之始,知是行之成。这篇文章主要讲述oeasy教您玩转vim - 41 - # 各寄存器相关的知识,希望能为你提供帮助。
show: step
version: 1.0
enable_checker: true 各寄存器 回忆上节课内容????

  • 上次是复制粘贴
    • < kbd> y< /kbd> 就是把东西yank到寄存器里,就是复制
    • < kbd> d< /kbd> 就是把东西delete到寄存器里,就是剪切
    • yank也可以配合motion
  • 不管是yankdelete都是把东西放到默认寄存器
    • 默认的是`" " ``
    • 除了默认的之外
    • 还有什么可玩的寄存器?????
    • 我们可以查一下手册
    • :h reg(ister)
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

寄存器
  • 我们平时用的都是无名寄存器,其实有很多种寄存器的
    • 无名寄存器""
    • 数字寄存器"0-"9
    • 行内删除专用寄存器"-
    • 指定寄存器"a-"z"A-"Z
    • 3个只读寄存器":"."%
    • 轮换文件寄存器"#
    • 表达式寄存器"=
    • 选择和拖拽寄存器"*"+"~
    • 黑洞寄存器"-
    • 搜索模式寄存器"/
无名寄存器""
  • 我们最熟悉的默认寄存器
    • < kbd> d< /kbd> 、< kbd> x< /kbd> 删除内容默认寄存器
    • < kbd> y< /kbd> 复制内容默认寄存器
    • < kbd> p< /kbd> 粘贴也是从默认寄存器里面找内容粘贴
  • 不声明的话都用这个默认寄存器
  • 可以通过:reg "查看默认寄存器
  • 一般我们都先切换到正常模式
  • 然后再粘贴
  • 可以在插入模式下粘贴么
插入模式
  • 插入模式下按< kbd> ctrl< /kbd> +< kbd> r< /kbd>
  • 状态栏cmd区域会出现^R
  • 然后按下默认寄存器对应的"就可以了
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

数字寄存器"0-"9
  • "0 中存储的是最近yank的内容
  • "1-"9 中存储的是最近删除的内容
    • 最新的放在"1
    • 然后一次往后顺
    • 除非用了制定寄存器"x
    • 默认都在这里存一份
  • 可以一边删除
  • 一边:reg观察
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

行内删除专用寄存器"-
  • 如果删除的内容在1行以内
    • 也就是说不包含^J
    • 那么删除的东西就放在"-
  • 除非用了制定寄存器"x
    • 可以动手试一试!
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

指定寄存器"a-"z"A-"Z
  • 平常的< kbd> x< /kbd> 都是不指定寄存器的
  • 但是如果是< kbd> " < /kbd> < kbd> a< /kbd> < kbd> x< /kbd> 就是指定 寄存器a 的了
    • 删除的东西会放在"a这个寄存器中
    • < kbd> d< /kbd> 、< kbd> y< /kbd> 等命令也一样
    • 默认是操作""寄存器
    • 指定了别的寄存器就用指定好的寄存器
  • 这样我们就有了26个可用的寄存器
  • 如果我们使用"A
  • 就会把原来"a里的内容和新进入剪贴板的东西拼合在一起
  • 就是追加写入 a 寄存器
  • 我们也可以用< kbd> " < /kbd> < kbd> a< /kbd> < kbd> p< /kbd> 把指定好的寄存器里面的东西put出来
  • 具体可以去试一试
  • 观察 showcmd 的具体效果
3个只读寄存器":"."%
  • 这三个寄存器都是只读的
    • ". 里面存储着上次插入的内容
    • "% 里面存储着当前文件的名字
    • ": 里面存储着刚刚执行的命令
  • 可以\':reg看一下
  • 也可以< kbd> " < /kbd> < kbd> %< /kbd> < kbd> p< /kbd> 粘贴出来
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

轮换文件寄存器 "#
  • 这个涉及到轮换文件"#
  • 就得打开多个文件
  • 比较复杂
  • 先跳过去
表达式寄存器"=
  • 这个可以计算比如"=3+3
  • 注意左下角小地图
  • 然后摁下< kbd> p< /kbd>
  • 就会把6粘贴出来
选择和拖拽寄存器"*"+"~
  • 这个特别实用!!!
  • 要牢记!!!
  • 是从系统的剪切版里面粘贴
  • 比如"*p就是从系统剪切板进行粘贴
  • "*yy就是把本行粘贴到系统剪贴板上
  • 插入模式下< kbd> ctrl< /kbd> +< kbd> r< /kbd>
  • 然后< kbd> *< /kbd>
  • 就可以直接把剪切板内容放进来
黑洞寄存器"-
  • 这是一个黑洞
  • 放进去的东西哪里也不存
  • 就消失了
搜索模式寄存器"/
  • 这个对应着上次的用< kbd> /< /kbd> 进行搜索的内容
  • 如果想查看更多搜索命令就
  • :history /
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

重温插入模式
  • 我们在插入模式下
    • 按下< kbd> ctrl< /kbd> +< kbd> r< /kbd>
    • 然后按下寄存器的名字
    • 比如默认寄存器< kbd> " < /kbd>
    • 就可以把默认寄存器里面的东西粘贴过来
    • 而且还保持在插入模式
  • :h i_ctrl-r
oeasy教您玩转vim - 41 - # 各寄存器

文章图片

  • :reg 中的各种寄存器都可以用
  • 试一下????
总结
  • 这次我们了解到了各种寄存器
  • :reg
    • 无名寄存器""
    • 数字寄存器"0-"9
    • 行内删除专用寄存器"-
    • 指定寄存器"a-"z"A-"Z
    • 3个只读寄存器":"."%
    • 轮换文件寄存器"#
    • 表达式寄存器"=
    • 选择和拖拽寄存器"*"+"~
    • 黑洞寄存器"-
    • 搜索模式寄存器"/
  • 插入模式下< kbd> ctrl< /kbd> +< kbd> r< /kbd> 再加寄存器名称,可以粘贴寄存器中的内容
  • < kbd> d< /kbd> 、< kbd> x< /kbd> 、< kbd> y< /kbd> 、< kbd> p< /kbd> 都在在正常模式
  • 删除之后能否自动切换进入插入模式呢?????
  • 下次再说 ????
【oeasy教您玩转vim - 41 - # 各寄存器】[Github地址] (https://github.com/overmind1980/vimtutorial)
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

    推荐阅读