• 59 用无名寄存器实现删除,复制粘贴 操作
  • 60 深入理解 vim寄存器
  • 61 用寄存器中的内容替换高亮选区的文本
  • 62 把寄存器的内容粘贴出来
  • 63 与系统剪切板进行交互
  • Practical vim 第十章 复制与粘贴

    59 用无名寄存器实现删除,复制粘贴 操作

    xp: 交换光标后两个字符位置 ddp: 交换上下行

    x 默认将内容添加到无名寄存器了,p默认从无名寄存器读取内容粘贴到光标后面,将它们组合到一起达到调换光标之后两个字符的效果,同样的道理ddp则可达到交换上下两行的效果。

    但是:x.s,d,c,y默认都会将内容写入无名寄存器中,所以无名寄存器中内容容易被改写。

    60 深入理解 vim寄存器

    无名寄存器: “”如""p === p

    复制专用寄存器: "0 只有复制时内容才会写入该寄存器

    有名寄存器 "a-"z

    如果使用有名寄存器就需要额外的按键,如我想将当前单词复制到a寄存器中:"adiw 复制:"ap

    黑洞寄存器"_

    当我们使用黑洞寄存器时,不会影响到无名寄存器,内容被永久丢失了

    系统剪贴板"+与选择专用寄存器"*

    "+ 与系统剪贴板等效,如windows中可以通过它与系统剪贴板交互 "* 对应主剪贴板,里面保存上次高亮选中的文本

    表达式寄存器 "=

    当我们从表达式寄存器中获取内容时,会跳到命令行模式,此时我们可以输入一段vim脚本并按enter键执行,如果返回的是字符,vim将使用它

    其它寄存器

    "% 当前文件名 "# 轮换文件名 ". 上次输入的文本 ": 上次执行的ex命令 "/ 上次查找 的模式

    61 用寄存器中的内容替换高亮选区的文本

    交换两个单词 首先定位到第一个单词复制,yiw, 定位到要交换的单词 ve 选中该单词, 粘贴 p.

    62 把寄存器的内容粘贴出来

    p将寄存器内容粘贴到之后,P将寄存器内容粘贴到之前。当寄存器中内容为字符,这里的之前/之后是相对当前字符,而如果寄存器是内容为行级内容,则之前/之后是相对当前行而言。

    gp 与gP命令也可以将文本粘贴到当前行之前或者之后,但它会把光标移动到粘贴出来的文本的结尾而非开头。

    63 与系统剪切板进行交互

    在启用了autoindent选项后,从系统粘贴板中粘贴内容时就会出现缩进乱了的情况,此时可以设置paste选项: ex命令

    :set paste
    :set paste!
    

    或者可以设置:set pastetoggle=

    终级解决办法是:"+p 从系统寄存器中粘贴内容

    上一篇:Menu 菜单练习

    下一篇:Practical vim 第十二章 按模式匹配 72-75