我经常需要在相同或相似的位置将东西粘贴到几个相邻的线上.每次移动到下一行时,必须将光标移回粘贴内容的开头是一件痛苦的事.如何在不移动光标的情况下粘贴(如命令'p')?或者,如何快速将光标恢复到粘贴前的位置?
car*_*arl 24
不破坏寄存器的最安全方法是执行以下操作:
p`[
Run Code Online (Sandbox Code Playgroud)
如果要创建快捷方式,只需使用适合您的任何vim的地图功能,例如:
noremap p p`[
Run Code Online (Sandbox Code Playgroud)
Ste*_*e K 10
每当我有一系列重复几次的步骤时,我都会记录一个宏,这在Vim中很容易.一般方法是
因此,在您的情况下,记录宏的整个按键序列可能是
qxp`[jq
Run Code Online (Sandbox Code Playgroud)
并5@x重播五次,共计6次更改.
请注意,第一个q之后的字符是一个记录宏的寄存器,它可以是任何字母,而不仅仅是x.小心你的宏不会将文本拖入目前正在录制的寄存器中,这会让事情变得一团糟!
宏可以是任意长且复杂的.它们可以包含Ex模式命令,甚至可以调用其他宏.
您可以在不保留右侧键盘布局中的行的情况下完成此操作(除了p ofc 之外):
pg;
Run Code Online (Sandbox Code Playgroud)
G; 转到更改列表中列出的上一个位置
欲了解更多信息:
:help changelist
:help changes
Run Code Online (Sandbox Code Playgroud)