在 vim 中,"+p从系统剪贴板粘贴。但是,当在非 GUI 机器上通过 SSH 远程工作时,此功能不可用。
在这种环境下可以实现复制/粘贴吗?
仅仅从终端复制文本是不够的,因为它还会复制超出文件范围的内容(例如,如果使用 tmux,它会复制全屏,因为它都是纯文本)。
答案1
一种解决方法是使用(远程访问)临时文件来传输文本:
如果您可以通过 SSH 返回到您自己的系统,您只需将:split scp://hostname/path/to/file
拉出的文本放在那里,然后:write
。
如果您只能使用 SSH 从系统连接到服务器,请在本地打开 Vim 并从服务器访问临时文件:(vim scp://server/path/to/file
或者直接使用scp
)。
这一切都是由网络Vim 附带的插件。
答案2
在 MacOS 上,当从计算机 A 到计算机 B 并在计算机 B 中使用 vim 时,我将其添加到计算机 B 中的 .vimrc 中:
nmap yr :call system("ssh $machineA_IP pbcopy", @*)<CR>
这样,在正常模式下,如果 vim@machine_B 的内容 * 寄存器被复制到机器 A 的本地剪贴板,假设您已经使用 +clipboard 和 * 寄存器正确设置了 Vim