Vim下的复制与粘贴
Vim的剪切粘贴于我们常用的编辑器有很大不同,从术语上来看,Vim中的删除(Delete) ,复制(yank), 粘贴(put) 就和我们常用的指令不同.
Vim 不使用单一的剪贴板进行剪切、复制与粘贴操作,而是为这些操作提供了多 组寄存器。当使用删除、复制与粘贴命令时,我们可以明确指定它们中的某一个进行 操作。
引用一个寄存器
Vim 的删除、复制与粘贴命令都会用到众多寄存器中的某一个。我们可以通过给 命令加 "{register} 前缀的方式指定要用的寄存器。若不指明,Vim 将缺省使用无 名寄存器。
VIM中有多种寄存器:包括:
有名寄存器,用名字(”a-“z);
无名寄存器,名字为:“” 进行任何删除、复制操作时,它都会赋值,也是默认的,不用指定就可以;
黑洞寄存器:“_ 表示真的完全没有了,放进去的东西都不会恢复的;
复制专用寄存器:”0 当进行复制时,它就会被自己赋值;
表达式寄存器: “= 它会用于计算之类的;
系统剪贴板: ”+
下面给出一个范例
按键操作 | 缓冲区内容 |
---|---|
yiw | content1 content2 |
w | content1 content2 |
diw | content1 |
p | content1 content2 |
但是这样我们得到的单词是content2, 不是我们想要的content1
这是因为, 我们运行diw
时,无名寄存器被覆盖掉了, 这样我们按p时得到的是刚刚删除的单词, 尔不是之前复制的单词.
这时, 我们可以使用复制专用寄存器, "0
, 只有在进行复制时, 复制专用寄存器才会被复制, 我们再进行一次操作
按键操作 | 缓冲区内容 |
---|---|
yiw | content1 content2 |
w | content1 content2 |
diw | content1 |
"0p | content1 content1 |
网友评论