访问没有xclip或特殊寄存器的剪贴板

时间:2016-05-18 07:30:12

标签: vim clipboard

我正在编写一小组映射,以实现在vim和系统剪贴板/选择剪贴板之间复制和粘贴的功能。到目前为止,我与xclip工作有很好的集成,但我正在使用的一些机器既没有xclip,也没有图形/剪贴板启用的vim安装。

我想知道如果没有这些增强功能,我将如何与系统剪贴板集成。 如果不可能的话,我愿意接受部分解决方案,例如我目前有一个第二好的方法,它会向cat移动,这允许我选择要复制的文本,但仍无法轻松粘贴。

以下是我.vimrc的相关摘要(也使用映射复制):

" System yank and put
if executable('xclip')
    " Yank and put with the system clipboard
    nnoremap <silent> <leader>p :let @@ = system('xclip -o')<cr>""p
    nnoremap <silent> <leader>P :let @@ = system('xclip -o')<cr>""P
    nnoremap <silent> <leader>Y V""Y:call system('xclip -i', @")<cr>
    vnoremap <silent> <leader>Y V""Y:call system('xclip -i', @")<cr>
    vnoremap <silent> <leader>y ""y:call system('xclip -i', @")<cr>
    vnoremap <silent> <leader>p <esc>:let @@ = system('xclip -o')<cr>gv""p
    vnoremap <silent> <leader>P <esc>:let @@ = system('xclip -o')<cr>gv""P
else
    " Display the text for easy selection
    nnoremap <silent> <leader>Y V""Y:echo @"<cr>
    vnoremap <silent> <leader>Y V""Y:echo @"<cr>
    vnoremap <silent> <leader>y ""y:echo @"<cr>
endif

编辑:我没有使用:'<,'> w !cat,因为它只能按行工作。使用寄存器作为中间人可以实现字符精度。

编辑:作为参考,这是我使用的其中一台计算机上vim --version|grep clipboard的输出,它没有剪贴板支持:

-clipboard       +iconv           +path_extra      -toolbar
+eval            +mouse_dec       +startuptime     -xterm_clipboard

0 个答案:

没有答案