[英]Paste in Vim without moving the cursor
我经常需要将一些东西粘贴到几个相邻的行中,在相同或相似的位置。 当移动到下一行时,每次都必须将光标移回粘贴内容的开头,这是一种痛苦。 如何在不移动光标的情况下粘贴(如命令“p”)? 或者,如何快速将光标恢复到粘贴前的位置?
不破坏寄存器的最安全方法是执行以下操作:
p`[
如果您想创建快捷方式,只需使用任何适合您的 vim 映射函数,例如:
noremap p p`[
每当我有一系列步骤要重复几次时,我都会记录一个宏,这在 Vim 中非常简单。 一般方法是
所以在你的情况下,记录宏的整个击键序列可能是
qxp`[jq
和5@x
重播它五次,总共 6 次更改。
请注意,第一个 q 之后的字符是用于记录宏的寄存器,它可以是任何字母,而不仅仅是 x。 请注意您的宏不会将文本猛拉到当前正在录制的寄存器中,这会使事情变得一团糟!
宏可以是任意长和复杂的。 它们可以包含 Ex 模式命令,甚至可以调用其他宏。
您可以通过按 CTRL-o 快速返回粘贴前的位置。 这通常会移回先前的光标位置。
我正在将整个大文档中的行粘贴到 3 个标记之一(移动到标题下的行)。 我找到的最快的方法是:
'ap
后跟 CTRL-o
您可以在不将行保留在正确的键盘布局中的情况下执行此操作(除了p ofc):
pg;
G; 转到更改列表中列出的上一个位置
欲了解更多信息:
:help changelist
:help changes
'k' ? (如上箭头所示)
如果使用“p”将文本粘贴到当前行下方,则光标将位于粘贴内容的第一行。 在命令模式下键入 'k' 会将您带到粘贴内容开头上方的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.