如何使用vim寄存器?

我只知道一个使用寄存器的实例是经过Ctrl R *的 ,所以我从剪贴板粘贴了文本。 vim

寄存器的其余用途是什么? 如何使用它们? less

您所了解的关于VI寄存器的全部信息(让咱们关注vi 7.2)-与咱们分享。 测试


#1楼

一个很酷的技巧是使用"1p粘贴上一个删除/更改(,而后使用.重复粘贴后续的删除。 "1p...换句话说, "1p...基本上等同于"1p"2p"3p"4pthis

您可使用此命令对少数几行进行反向排序: dddddddddd"1p.... spa


#2楼

形成混乱的一大缘由是默认寄存器" 。了解其工做方式很重要。若是大多数时候都避免使用默认寄存器,那就更好了。Vim文档中的解释: 指针

Vim fills this register with text deleted with the "d", "c", "s", "x" commands
or copied with the yank "y" command, regardless of whether or not a specific
register was used (e.g.  "xdd).  This is like the unnamed register is pointing
to the last used register.

所以,默认寄存器其实是指向最后使用的寄存器的指针。 当您删除或删除某些内容时,该寄存器将指向其余寄存器。 您能够经过检查寄存器来测试。 老是有另外一个与默认寄存器彻底相同的寄存器:yank寄存器( "0 ),第一个删除寄存器( "1 ),小型删除寄存器( "- )或用于删除或yank的任何其余寄存器。 code

惟一的例外是黑洞寄存器。 Vim doc说: 排序

An exception is the '_' register: "_dd does not store the deleted text in any
register.

一般,直接使用"0"-"1-"9默认寄存器或命名寄存器会更好。 ci


#3楼

Vim中的寄存器使您能够对其中存储的文本运行操做或命令。 要访问寄存器,请在命令前键入"a ,其中a是寄存器的名称。若是要将当前行复制到寄存器k ,则能够键入 文档

"kyy

或者,您可使用大写字母追加到注册簿中

"Kyy

而后,您能够浏览文档并将其粘贴到其余位置

"kp

从Linux上的系统剪贴板粘贴

"+p

从Windows上的系统剪贴板(或Linux上的“鼠标突出显示”剪贴板)粘贴

"*p

要访问全部当前定义的寄存器类型

:reg

#4楼

  • q5将编辑记录到寄存器5中(下一个q中止记录)
  • :reg显示全部寄存器及其中的任何内容
  • @ 5执行寄存器5宏(记录的编辑)

#5楼

其余有用的寄存器:

"*"+ -系统剪贴板的内容

"/ -最后一个搜索命令

": -最后一个命令。

请注意,对于vim宏,您能够编辑它们,由于它们只是记录宏时使用的击键列表。 所以,您能够将宏写入文本文件(使用"ap写入宏a” )并对其进行编辑,而后使用"ay$将其加载到寄存器中。 存储有用宏的好方法。

相关文章
相关标签/搜索