Cut to the system clipboard from Vim on Ubuntu

19,970

Solution 1

Your version of Vim doesn't support X, which is required for clipboard access. By default, Ubuntu ships several builds of vim and only the GUI variant supports clipboard access. I always recompile vim from source so that a single vim (with symlinks for gvim etc) supports everything required (including :gui to switch from command line to GUI version). It's really very easy to do:

# 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 <[email protected]>" \
    --with-python-config-dir=/usr/lib/python2.7/config
make && sudo make install

That will install it in /usr/local, so make sure that's in your PATH before /usr and it will be used instead of the Ubuntu versions.

Solution 2

The output from vim --version should show something like this:

Huge version with GTK2-GNOME GUI.  Features included (+) or not (-):

and further down in the output you should see stuff like +Xll:

+vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim 
+xsmp_interact +xterm_clipboard -xterm_save 

That means your console vim can copy/paste to/from the X11 clipboard.

Try apt-get install vim-gtk

Solution 3

Install the package vim-gnome instead of vim. It comes with clipboard enabled.

Solution 4

You can also add shortcuts to your vimrc

# Copy and paste
vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <ESC>"+pa

It will allow you to Copy by Ctrl + C and Paste by Ctrl + V

Solution 5

If you have run configure as explained by @DrAl but you still can't get the GUI compiled in and you see this in the output of your ./configure

checking for X... (cached) no

Then you may have to delete the cache file that configure created.

find . -name config.cache -delete

Then re-run configure and make and check src/vim --version again - it should show that gui is included now.

Share:
19,970
Gattoo
Author by

Gattoo

Updated on June 29, 2022

Comments

  • Gattoo
    Gattoo almost 2 years

    I am using Ubuntu 12.04 Beta and Vim that has come with it. I am trying to use Vim to copy the content of a text file to Chrome browser. I have tried +, * y and all its variants. I have tried to :set clipboard=unnamed and :set clipboard=unnamedplus. Not working. I am not trying to use xclip, or GVim or any of that. I tried with xclip (not a standard package in Ubuntu 12.04), but that too does not work, also too much effort.

    How do I copy the text to the clipboard and then paste anywhere, like Chrome?