我正在学习喜欢 vim,但我还没有完全接受的一件事是复制和粘贴情况。在麻瓜文本编辑器中,我会Ctrl-C复制一段文本,然后编辑/删除,然后将文本粘贴到其他地方。但是在 vim 中我不能这样做,因为在我用 复制文本后y,修改文本经常涉及d并且x会抹去我的原始文本。
有没有办法制作d而x不是复制文本?否则,我应该如何使用这些 vim 功能?
您正在谈论的命令使用所谓的“未命名”寄存器。它仅适用于非常短期的使用。“我要把它从这里拽下来放到那里”之类的。
当你想在做其他事情的同时保持某件事超过几秒钟时,你应该使用命名寄存器。
例如," a y y将光标所在的行拖入a
寄存器。没有什么会意外地破坏它,除非您键入另一个涉及a
寄存器的命令。几分钟、几小时、甚至几天后,您可以键入" a p以从a
光标所在的寄存器下方的寄存器中删除该行的复制副本。
(为了让它工作得很好,你应该set viminfo='50,\"1000
在你的~/.vimrc
文件中有一行,告诉它记住诸如跨 Vim 会话注册内容之类的事情。然后你可以在 yank 和 put 之间休假!)
有 26 个命名寄存器 (az)。如果您将它们指定为大写而不是如上所示,您将附加到当前寄存器内容而不是替换它们。因此,您可以构建一些非常复杂的东西,例如,一次注册h
一个,然后使用" h p.
请注意,寄存器名称是可选的。这意味着可能有许多您已经知道并在使用命名寄存器的地方使用的命令。:help registers
在 Vim 中说以获得一些可能性的想法。
另外,买一个 Vi 马克杯。