我使用 Ubuntu 和 vim。我可以从 vim 复制文本并将其粘贴到另一个窗口中,方法是在 vim 中突出显示它,然后在另一个窗口中单击鼠标中键。当我在本地计算机上时,这可以正常工作。
我还可以通过突出显示文本并将其复制到系统寄存器中。(例如,Shift-V JJ "+ y
要进入逐行可视模式,突出显示两行,选择“+”寄存器并拖拽。)然后就可以将其粘贴到其他窗口中。
但是,如果我通过 ssh 进入我的网络主机,则无法执行上述任何一项操作。(他们使用某种版本的 Linux - 我认为是 CentOS。)
在 vim 中,如果我输入:version
,我的本地版本会显示+xterm_clipboard
,但主机的版本会显示-xterm_clipboard
。我在那里没有 sudo 权限。
有没有什么办法能够从他们的 vim 中复制,而不用让他们修改安装?
答案1
当您使用 ssh 时,出于安全原因,您通常不希望其他计算机访问您的 x 会话。但是,如果您执行 ssh -X(再次强调,您应该了解安全隐患),我认为它应该允许远程 shell 访问 x windows 剪贴板。
答案2
你能在他们的系统上运行 xcutset 吗?这应该可以解决你的问题。xclipboard 是另一个选择。
答案3
检查mouse
设置vim
:
:set mouse
从:help mouse
:
在终端中启用鼠标时,如果可以访问 X 服务器,则复制/粘贴将使用“*”寄存器。通过按住 Shift 键,仍可使用 xterm 对鼠标按钮的处理。
实际上,如果设置为i
或a
,使用鼠标中键复制粘贴将不起作用,除非您一直shift
按住该键(但该shift
键技巧似乎只适用于从本地到远程,而不是反过来)。如果选项mouse
设置为n
、v
或,c
则r
中键复制粘贴将按预期工作(显然,每个选项都有其他效果)。
vim
因此,如果您没有其他特殊的鼠标需求,此命令可能会解决您的问题:
:set mouse=n
请注意,这mouse=n
还将启用右键单击粘贴。
答案4
或者,您可以使用 scp 在本地 vim 中打开远程文件。然后在本地 vim 中进行剪切和粘贴。语法如下:
:e scp://user@host//path/file.txt