set clipboard=unnamed
,根据我在其他帖子中所读到的,这应该将所有yank/delete操作放入系统剪贴板。然而,当我尝试将我所复制的内容粘贴到像记事本这样的MS应用程序时,却无法实现。当我使用鼠标在vim中选择文本时,它会自动复制到系统(MS剪贴板)。我希望在使用类似3yy这样的键盘命令时也能拥有相同的功能。
有人可以告诉我我做错了什么吗?
set clipboard=unnamed
,根据我在其他帖子中所读到的,这应该将所有yank/delete操作放入系统剪贴板。然而,当我尝试将我所复制的内容粘贴到像记事本这样的MS应用程序时,却无法实现。尝试
"+3yy
"*3yy
"+p
"*p
"+p
"*p
正如黑客所提到的那样,这将起作用。由于您已经 ssh 到另一个框中,因此这些文本只会复制到您 ssh 到的框的剪贴板中。
您需要的是 putty 复制文本的方法,即使用鼠标 选择要复制的文本。
虽然在 sshed 到 vim 中,我通常使用ALT + 鼠标选择(用于块选择),因为我通常有行号。
希望这可以帮助您!
我正在尝试弄清楚如何在PuTTY中(不涉及xterm)使vim与Windows剪贴板交互。
到目前为止,我的研究表明这是不可能的。xterm具有剪贴板交互终端转义序列,但它们在默认情况下被禁用。在PuTTY中它们可能根本没有实现。这可能是出于安全原因:您不希望远程系统完全访问您的剪贴板。
我不确定vim的xterm_clipboard
功能是否应该使用它。到目前为止,我的搜索只能找到人们抱怨它未启用的内容,或者谈论如何获得启用了它的vim,而不是它的实际实现方式。我找到的最好的资料是这篇指南,其中提到了它,但没有说任何关于转义序列与X选择还是X剪贴板之间区别的信息。(是的,X11有一个选择和一个单独的剪贴板。某些复制方式只设置其中一个。)
Vim的剪贴板支持直接与X服务器通信。在Linux桌面上,使用终端中的vim(例如我的Konsole),:“*dd
将行放入剪贴板。
使用
(unset DISPLAY; strace -s256 -o /dev/pts/18 vim some_file.txt)
vim没有X服务器可供使用。(pts18
是另一个终端窗口的tty。)我以为vim可能会使用xterm转义序列来设置剪贴板,但它没有。没有write(1, ...)
系统调用整个区域,所以显然不是尝试使用转义序列通过xterm将区域放入剪贴板。
我在Ubuntu 15.04上的Konsole中运行了这个命令,并使用TERM=xterm
进行了尝试。我还尝试在真正的xterm
中运行。
哦,xterm默认禁用GetSelection/SetSelection
。也许启用此功能后,vim会尝试使用它?虽然我不知道这是否有帮助,因为PuTTY也必须支持它,这是不太可能的。