我想从vim编辑器复制一些内容到shell命令行。我尝试过很多方法,但发现所有这些方法只在同一个vim编辑器中起作用。我的需求是在vim编辑器和shell命令行之间复制和粘贴。也就是说,vim -> shell。
PS:我正在使用putty。
编辑:
顺便问一下,如果只是从vim编辑器中复制一些内容并将其粘贴到unix/linux系统中的终端中会怎样?
注意:
在vim中运行:echo has("X11")的输出为0,因此我的系统不支持X11!
如果您的vim版本>= 7.3.74,则可以通过在.vimrc文件中添加一行来设置vim默认使用系统剪贴板:
set clipboard=unnamedplus
如需详细信息,请查看此链接。然后在vim中使用y(ank)命令,内容将存储在系统剪贴板中。
编辑:
此解决方案和"*y解决方案需要支持剪贴板的Vim。如果您缺乏该功能,请使用cat/grep/less/tail...提取要复制的文本。
" + y 可以在 vim 中复制文本,然后使用 ctrl + shift + v 在终端中粘贴。
+
吗?这个 +
只是用来表示你需要同时按下这三个按钮,你实际上并不需要按下 +
键将内容粘贴到终端。 - Jake Sellers通过使用V
命令选择行,然后通过命令:'<,'>w !sh
执行所选内容。
vim
和shell
之间复制。但我通过搜索“vim将内容复制到shell执行”从谷歌来到这里,并发现这个解决方案完全回答了我的问题。 - Sergei Voronezhskii*
缓冲区,在vim中选择文本,然后按下3个按键:
"*y
然后切换到其他程序、终端、浏览器或任何其他地方,单击鼠标中键即可获取已复制的文本。
详见:h y
,了解如何复制文本并保存在特定寄存器中(在此情况下,它是寄存器*
)。
*
寄存器,您可以将文本部分保存到临时文件中,或者使用其他基于 shell 的工具(grep/sed/awk/...)来提取该部分。 - Kent双引号
、星号
,然后再按下y
!而不是星号 y
。 - Kent