详解VIM寄存器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Blood_Seeker/article/details/79463552

详解VIM寄存器

寄存器类型

VIM中有9中类型的寄存器,寄存器的主要功能就是缓存操作过程中删除、复制、搜索等的文本内容,通过 :help registers命令查看寄存器的详细帮助说明,这里对类型翻译如下:

未命名寄存器 ""  —— vim使用的默认寄存器,文本来源命令:d/c/s/x/y
10个数字命名寄存器 "0 - "9 —— vim缓存yank和delete行操作命令产生的文本
1个非行删除内容缓存寄存器 "- —— vim缓存delete操作在非行上时产生的文本
26个字母命名寄存器 "a - "z / "A - "Z —— 完全由用户指定内容的寄存器
4个只读寄存器 ". "% "# ":  
表达式寄存器 "= —— 使用VIM强大的表达式功能(从来没用过,一点不懂)
GUI选择寄存器 "* "+ "~ —— vim缓存在GUI中选择的文本
黑洞寄存器 "_ —— 类似Linux中的/dev/null文件,只进不出,可用来滤掉影响默认寄存器的内容
最后搜索模式寄存器 "/ —— 缓存在vim中使用过的最后的搜索内容

这些寄存器很多,那怎么来查看它们的内容呢?使用VIM的 :registers命令或者短一些的 :dis命令或者reg命令,命令会列出所有存在的寄存器的内容,然后你就可以选择指定寄存器的内容进行粘贴了。
寄存器使用

注意到上述寄存器的命名前面都有一个双引号,这就是使用他们的方式。

数字寄存器

"0 : 存放最近使用最多的y命令生成的文本内容,如果未显式指定其内容
"1 - "9 : 存放最近使用的d行操作命令生成的文本内容,如果未显式指定其内容,并在9个寄存器间对内容进行轮流存放,即有新的内容时,将"1的内容推到"2, 2到3,3到4 ...

字母寄存器

如果你打算将一段内容进行多次长时间的来回拷贝,则最好使用字母寄存器,因为他们的内容被你修改后不会被VIM自动修改掉,而数字寄存器的内容随着新操作的使用会覆盖掉你指定的内容。

"a - "z : 每次指定这些寄存器之一时,产生的文本内容将覆盖掉寄存器中原有的内容
"A - "Z : 每次指定这些寄存器之一时,产生的文本内容将追加到寄存器中原有的内容之后,如果选项'cpoptions'的值中有>符号,则在追加同时会进行行分割,可以通过命令: :set cpo+=>设置。

只读寄存器

". : 包含最后在vim insert模式下插入的文本内容,也可以通过命令 . 重复上一次的操作。
"% : 包含当前文件的名字,方便在文件中插入文件名
"# : 包含当前可选择的文件名,指在当前会话中使用过的文件的名字

系统剪贴板

在系统中进行多个应用之间的内容拷贝时,会使用到系统剪贴板,这可以使用”*,”+寄存器来将内容粘贴到VIM中,他们也都是只读寄存器。除此之外,还可以使用键盘快捷键Shift+Insert来快速插入。

寄存器内容设置

扫描二维码关注公众号,回复: 3808098 查看本文章

复制专用寄存器(“0)
通过y命令复制的内容,会保存到寄存器0中。
寄存器的使用是通过”后面跟寄存器名字。
例如:
复制当前行(yy),
又做了几次删除单词操作(dw)
但是只想粘贴刚才复制的行,那么就不能用无名寄存器”“去粘贴了,不能直接p进行粘贴,需要用”0p,指定使用寄存器0,因为”0里只存放y命令存入的内容。

删除专用寄存器(“1-“9)

通过d或c命令,删掉的内容,会保存打”1-“9这9个寄存器中。
最新删除的内容,会在”1中,其他顺延。
例如:
删除当前行(dd)
删除当前行(dd)
想复制第一次删除的行,”2p

命名寄存器(“a-“z)
可以将重要内容放到命名寄存器”a-“z中,一共26个。
例如:
把当前行放入寄存器”j里,”jyy
复制寄存器”j的内容, “jp

黑洞寄存器(“_d)
放到这个寄存器的内容,将不会放到任何其他寄存器中,相当于彻底删除内容。
例如:
彻底删除当前行,不放入任何寄存器,”_dd

系统剪贴板(“+)

通过”+寄存器可以把内容复制到系统剪贴板,也可以从系统剪贴板粘贴内容但Vim中。
例如:
复制当前行到系统剪贴板中,”+yy
复制系统剪贴板到vim中,”+p

除了上面介绍的通过在操作命令前添加寄存器号来指定寄存器的内容外,vim还提供了在命令行显式指定寄存器内容的命令 :let-@,例如命令 :let @a = “vim registers blog”, 表示将”a寄存器内容设置为右值。

猜你喜欢

转载自blog.csdn.net/Blood_Seeker/article/details/79463552
今日推荐