如何在Vim的命令行模式中复制文本?

12

比方说,我刚在Vim中运行了这个命令:

:nmap <CR> <C-]>

现在我想复制这一行并将其放入我的.vimrc中。 如何在命令行模式下选择和复制整行?


4
如果你已经执行过命令,可以输入 q: 打开一个缓冲区,里面会显示你输入的命令,这样你就可以像平常一样复制它们了。请注意,这里不会提供解释或其他信息。 - Eric Fortis
这对我来说本来就是答案 :-) - Tobias
2个回答

17
最快的方式是运行命令,切换到目标缓冲区(在此情况下加载了.vimrc),然后通过键入从:寄存器粘贴整个命令。
":p

在正常模式下。
如果命令是更早之前的,可以先从历史记录中调用它(例如,输入前几个字母并按上箭头键↑),重新运行它,然后使用上述方法。
当这些快捷方式不方便时,可以采用使用命令行窗口的通用方法(参见:help cmdwin)。要打开它,可以在正常模式下输入q:,或按照命令行模式中cedit选项设置的键组合(默认为Ctrl+F)。

13

在命令模式下,您可以键入Ctrl-F打开一个特殊窗口,其中包含所有先前的命令。然后,您可以滚动到所需行,按下yy复制该行,然后按Ctrl-C返回到命令模式,然后按ESC返回到正常模式。从那里,您就可以粘贴。

有关命令窗口的更多信息,请参见:help cmdwin


这个特殊的窗口非常有用!在Spacemacs中,我能够通过向上滚动并按下回车键来获取旧的搜索结果!而且它还带有Vim的绑定功能! - young_souvlaki
1
这个绑定到 q: 用于示例和 q/ 用于搜索!!! - young_souvlaki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接