从Ubuntu上的Vim切换到系统剪贴板

Gat*_*too 30 vim ubuntu

我使用的是Ubuntu 12.04 Beta和Vim.我正在尝试使用Vim将文本文件的内容复制到Chrome浏览器.我试过了+,* y以及它的所有变种.我试过:set clipboard=unnamed:set clipboard=unnamedplus.不工作.我不是试图使用xclip,或GVim或其中任何一种.我尝试使用xclip(不是Ubuntu 12.04中的标准软件包),但这也不起作用,也付出太多努力.

如何将文本复制到剪贴板然后粘贴到任何位置,例如Chrome?

DrA*_*rAl 29

您的Vim版本不支持剪贴板访问所需的X. 默认情况下,Ubuntu提供了几个vim版本,只有GUI版本支持剪贴板访问.我总是从源代码重新编译vim,以便单个vim(带有gvim的符号链接等)支持所需的一切(包括:gui从命令行切换到GUI版本).这真的很容易做到:

# Get the compile-dependencies of vim
sudo apt-get build-dep vim
# If you haven't got mercurial, get it
sudo apt-get install mercurial
# Get the source
hg clone https://vim.googlecode.com/hg/ vim_source
# Compile it
cd vim_source
./configure \
    --enable-perlinterp=dynamic \
    --enable-pythoninterp=dynamic \
    --enable-rubyinterp=dynamic \
    --enable-cscope \
    --enable-gui=auto \
    --enable-gtk2-check \
    --enable-gnome-check \
    --with-features=huge \
    --with-x \
    --with-compiledby="Your Name <youremail@domain.com>" \
    --with-python-config-dir=/usr/lib/python2.7/config
make && sudo make install
Run Code Online (Sandbox Code Playgroud)

这将安装它/usr/local,所以请确保它在你PATH 之前 /usr,它将被用来代替Ubuntu版本.


sas*_*ang 27

输出vim --version应显示如下:

Huge version with GTK2-GNOME GUI.  Features included (+) or not (-):
Run Code Online (Sandbox Code Playgroud)

在输出中你应该看到像+ Xll这样的东西:

+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim 
+xsmp_interact +xterm_clipboard -xterm_save 
Run Code Online (Sandbox Code Playgroud)

这意味着您的控制台vim可以复制/粘贴到X11剪贴板.

尝试 apt-get install vim-gtk

  • 这个.你应该使用vim-gtk,也许可以考虑将`set clipboard = unnamedplus`或`clipboard = unnamed`设置到你的vimrc中,这样默认的寄存器也用于剪贴板操作. (2认同)
  • @Gatoo:好的,基本上你想从源代码构建一个vim版本,它将具有与Ubuntu通过'apt-get install vim-gtk'为你提供的相同或接近相同的功能? (2认同)

dan*_*son 8

安装包vim-gnome而不是vim.它配备clipboard启用.


lis*_*is2 5

您还可以向vimrc添加快捷方式

# Copy and paste
vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <ESC>"+pa
Run Code Online (Sandbox Code Playgroud)

它允许你复制Ctrl+ C和粘贴Ctrl+V