如何在vim中复制命令输出?


33

例如,如果键入“ :pwd”以获取当前的工作目录,则可以在gvim中选择文本,但无法弄清楚如何将其复制到剪贴板。如果我在控制台vim中尝试相同的操作,我什至无法用鼠标选择它。我希望这可以与所有vim命令一起使用,例如set guifont复制guifont=Consolas:h10:cANSI输出。

Answers:


41

你在找这个吗

:redir @* | set guifont | redir END

:redir命令将命令的输出重定向到寄存器(@ *)。寄存器@ *是指剪贴板。

有关此的更多信息,

:help :redir

在vim-gtk中没有任何线索吗?
塞尔吉奥·阿布雷乌

尝试使用@SergioAbreu @+代替@*(嗯,它在gvim中有效)。
leeand00

10

尝试使用' :r !pwd'将当前工作目录直接保存到GVIM打开的文件中。
然后,可以像在其中打开任何其他文本文件内容一样,将其复制到剪贴板。


这很有用,但是我可以set guifont例如使用它吗?
史蒂文

不,那不是shell命令,因此它将不起作用。
凯文·潘科

4

对于此特定示例,您可以执行以下操作(请注意“!”使它通过外壳):

:!pwd | xclip

要么

:!pwd | xclip -selection secondary

(取决于您想要的X选择)。

您可能必须先安装xclip

sudo apt-get install xclip

(或同等学历)


3

如果在xterm中运行vim,则在选择文本时按住Shift键会将文本复制到剪贴板的X等效项中。


X有两个剪贴板(至少);您的建议将文本放置在PRIMARY选择中(单击中键粘贴),而不是CLIPBOARD hselection(在大多数应用中使用Ctrl + V粘贴)。
Marius Gedminas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.