我在ssh会话中的tmux里面打开了vim。如何让vim使用笔记本电脑的系统剪贴板作为默认复制粘贴?默认set clipboard=unamed
无效。如果重要的话,这两个系统都是Ubuntu。
答案 0 :(得分:3)
你需要做两件事。
在远程系统上,安装支持剪贴板的Vim(以及剪贴板支持所需的X依赖项):
$ sudo apt-get install vim-gtk
在本地系统上,启用启用了X11转发的ssh会话:
$ ssh -X user@hostname
有关X11转发的安全隐患,请参阅$ man ssh
。
答案 1 :(得分:1)
剪贴板集成功能(PASTE64 / OSC52)在终端仿真器支持时非常有用。例如,iTerm2支持它(我不确定Ubuntu)。
将此功能添加到您的"遥控器" .vimrc
。
猛拉一下并运行:OscCopy
。它甚至可以在tmux会话中运行。
function! OscCopy()
let encodedText=@"
let encodedText=substitute(encodedText, '\', '\\\\', "g")
let encodedText=substitute(encodedText, "'", "'\\\\''", "g")
let executeCmd="echo -n '".encodedText."' | base64 | tr -d '\\n'"
let encodedText=system(executeCmd)
if $TMUX != ""
"tmux
let executeCmd='echo -en "\x1bPtmux;\x1b\x1b]52;;'.encodedText.'\x1b\x1b\\\\\x1b\\" > /dev/tty'
else
let executeCmd='echo -en "\x1b]52;;'.encodedText.'\x1b\\" > /dev/tty'
endif
call system(executeCmd)
redraw!
endfunction
command! OscCopy :call OscCopy()
答案 2 :(得分:0)