5

我正在使用 Vim 7.2 ,用 +xterm_clipboard 编译,在 xterm 通过 putty 。我已经放入set clipboard=unnamed.vimrc ,并且从我在其他线程中阅读的内容来看,这应该将所有 yanks/delete 放入系统剪贴板。但是,当我尝试将我拉到的任何内容粘贴到记事本等 MS 应用程序时,它无法正常工作。

当我使用鼠标在 vim 中选择文本时,它会自动复制到系统(MS 剪贴板)。我希望在使用 3yy 之类的键盘命令时具有相同的功能。

谁能告诉我我做错了什么?

4

3 回答 3

2

尝试

"+3yy
"*3yy

"+p
"*p
于 2009-12-09T09:39:10.183 回答
1

如果你在本地运行 vim,那么要么

"+p
"*p

正如黑客所说,会起作用。由于您被 sshed 到另一个盒子,这些只会将文本复制到您要 sshed 的盒子的剪贴板。

您需要的是复制文本的putty方法,它只是用鼠标 突出显示您要复制的文本。

虽然 sshed 进入 vim,但我通常使用ALT + 高亮鼠标(用于块选择),因为我通常有行号。

希望这可以帮助!

于 2009-12-11T17:55:03.893 回答
0

我试图弄清楚如何在 PuTTY(不涉及 xterm)中获取 vim 以与 Windows 剪贴板交互。

到目前为止,我的研究表明这是不可能的。xterm 具有剪贴板交互终端转义序列,但默认情况下它们在 xterm 中被禁用。它们可能根本没有在 PuTTY 中实现。这可能是出于安全原因:您不希望远程系统完全访问您的剪贴板。

无论如何,我不确定这是否是 vim 的xterm_clipboard功能应该使用的。到目前为止,我的搜索只发现人们抱怨它没有被启用,或者谈论如何获得一个启用它的 vim,而不是它是如何实际实现的。我发现的最好的是this guide它提到了它,但没有说任何可以将其固定为转义序列与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 将该区域放入剪贴板。

TERM=xterm在 Ubuntu 15.04 上的 Konsole 中运行了它。我也试过里面真实的xterm

哦,xtermGetSelection/SetSelection默认禁用。也许启用此功能后,vim 会尝试使用它?但是,IDK 如果这有帮助,因为 PuTTY 也必须支持它,这是不太可能的。

于 2015-08-29T01:01:22.427 回答