Answers:
您的选择是:
_。例如,要删除一行,您可以输入"_dd。这将删除而不影响剪贴板。"ayy然后粘贴将输入"ap"0p运行:help registers有关前3个的更多详细信息
x我就用"_x吗?
x,则可能应该学会运动删除,例如dt)删除,直到其下一个右括号d2W删除下两个空格分隔的标记。然后您可能会"_di{在支撑区域内做类似的事情,这是我一直在做的事情。在正常模式下,该手段“ 删除一切里面这个支撑体系区域进入黑洞 ”
x不会将东西放在剪贴板上,而是将它们放入寄存器中。如果您不告诉它要放入哪个寄存器,则会将其放入未命名的寄存器,这当然会覆盖之前的内容。因此,相反,告诉它要使用哪个寄存器:" REGISTER x,其中REGISTER是任何单个字母。然后,您使用相同的quote-register前缀p从该寄存器粘贴。(注意:小写字母替换其内容;大写字母追加)。
还有两个特殊的寄存器"0和"1。"0是最近被选中的(y)文本,即使您使用其他命令(例如x)删除了一些文本,该文本也将保留。"1是最近删除的文本,只要该文本不小(一行)即可。删除的小文字会进入"-。
最后,正如Steve Vermeulen指出的那样,您可以通过指定黑洞寄存器告诉vim不要保存已删除的文本"_。
相关的帮助命令是:help registers。
该:let命令将允许您重新定义命名寄存器。在vim的命令行中,按Control+ R 两次1,然后寄存器名称会将寄存器的内容粘贴到命令中。然后,您可以修改其粘贴内容,并保存修改后的寄存器。
例:
"fyy将整行(yy)输入到f寄存器("f)中。:let @f=',和Control+ r,Control+ r一遍,然后f,你应该看到它粘贴到“富酒吧”,让您的命令行现在如下所示:let @f='Foo Bar,用光标在最后。:let @f='foo bar baz。:let @f='foo bar baz'并点击Enter。现在,您已经将f寄存器的内容重新定义为“ foo bar baz”。
(这也适用于宏!:help let有关更多信息。)
1 Control + r让您可以在已经处于插入模式的情况下插入寄存器,就像在键入字符一样。两次使用此序列很重要,因为“文本是按字面意思插入的,而不是像键入的那样。当寄存器包含类似的字符时,这是不同的<BS>。” — insert.txt vimdoc,:help i_CTRL-R_CTRL-R
与"_@derobert提到的黑洞寄存器有关,您可以在http://vimcasts.org/episodes/meet-the-yank-register/中找到有用的截屏视频。
Vim使用术语delete,yank和put代替了更标准的术语剪切,复制和粘贴。以相同的字母开头,放置和粘贴很容易互换。一旦您习惯了yank这个词,它就会成为copy的同义词。但是Vim使用'delete'这个词是有问题的。在大多数情况下,'delete'意味着删除。但是Vim的删除操作将文本复制到寄存器中,然后将其从文档中删除。换句话说,Vim的删除操作就像剪切一样。
http://www.vim.org/scripts/script.php?script_id=2703(2009-2014)
它建议映射gr。
gr或者,使用gr<text object>它来进行视觉选择。安装repeat.vim了Tim Pope和visualrepeat.vimIngo Karkat 的插件时,将支持dot-repeat 。