Vim 在大多数情况下看起来都不错,并且在某些类别中优于其他编辑器。但是复制和粘贴呢? (在我看来,甚至 MS DOS 的 EDIT.COM 在这一类别中似乎也优于 vim。)
场景 1:我有一个软件项目,有很多目录,我想将一个函数从一个文件移动到另一个文件。最有效的方法是什么?
场景 2:我激活缩进。它似乎与多行复制和粘贴冲突。我记得在互联网上看到人们建议在此过程中关闭缩进。同时我什至看到了一些奇怪的宏。有有效的解决方案吗?
答案1
如果您使用
NERDTree
插件目录不是您的敌人,否则您可以在选项卡中打开多个文件或拆分窗口。复制的文本可以通过 vim yankin(=复制) 从剪贴板粘贴
"+p
,并且粘贴效果完美 - 不仅是多行,而且是块式 - 我不知道 M$ DOS Edit 是否可以做到这一点。
我不知道是否有任何文本编辑器在文件之间复制或移动文本方面表现不佳,能够在荒野中生存超过 20 年。
答案2
:open
第一个文件,猛拉,:open
第二个文件,粘贴。你可能想要使用 NERDTree 等插件更快地找到第二个文件。
要在两个不同的 Vim 实例之间复制粘贴:在第一个文件中复制,调用:wv
writevim信息文件;在另一个文件中,调用:rv
读取viminfo文件然后粘贴。
缩进对于 Vim 的复制粘贴来说并不重要。仅当您将数据从 X 剪贴板粘贴到文本终端时才重要,因为 Vim 无法判断这是粘贴的文本而不是您键入的内容。将多行从 X 剪贴板粘贴到文本终端时,首先:set paste
关闭所有自动文本处理(缩进、缩写、换行……)。
如果您在 X 下或 X 终端中运行 Vim 并且您的 Vim 支持它,则可以通过 X 剪贴板复制和粘贴数据。猛拉并粘贴到*
X11 选择的寄存器和+
X 剪贴板的寄存器。例如,"*42yy
在第一个文件和"*p
第二个文件中。