Vim,yclking with xclip,摆脱逃脱角色

时间:2015-08-09 15:12:39

标签: vim ssh clipboard xclip

我正在使用vim通过ssh编辑多个系统上的文件,其中一些已编译或没有编译-clipboard选项。因此我一直在尝试使用xclip将文本的某些部分复制到X剪贴板中,然后通过ssh迅速将管道传回我的机器,我可以在那里使用它。

现在,我知道,我可以使用

:'<,'>w !xclip<CR><CR>

如果我想将整行或整行复制到剪贴板中,但我不想复制整行,我想要一个仲裁选择

为了修复它,我做了一个绑定,它将选择保存到@i寄存器并将其输入xclip

:vmap <F7> "iy<CR>:call system('echo ' . shellescape(@i) . ' \| xclip -i')<CR>

似乎工作正常,因为在一行中选择文本,但似乎保留了转义字符,当我复制几行时,例如

Plugin 'vim-scripts/buftabs'
Plugin 'jlanzarotta/bufexplorer'
Plugin 'kien/ctrlp.vim'
Plugin 'terryma/vim-multiple-cursors'

我在我的xclip中得到以下内容 - 新行的转义仍然存在

Plugin 'vim-scripts/buftabs'\
Plugin 'jlanzarotta/bufexplorer'\
Plugin 'kien/ctrlp.vim'\
Plugin 'terryma/vim-multiple-cursors'\

我尝试使用几种变形的shellescape并逃脱,但所有这些似乎都将逃脱的角色留在原地。我不知道vimscripting足以自己解决它。

我知道有关于vim和xclip的问题已经有几个问题,但是我找不到答案。

提前致谢!

1 个答案:

答案 0 :(得分:1)

偶然的,我找到了自己问题here的答案。复制到xclip可以简单地完成:

:vmap <F7> y: call system("xclip -i", getreg("\""))<CR>

这是一个修复程序,可以阻止系统调用显示在状态行

:vmap <silent> <F7> y :silent call system("xclip -i", getreg("\""))<CR>