Gattoo
Gattoo

Reputation: 3079

Cut to the system clipboard from Vim on Ubuntu

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?

Upvotes: 32

Views: 20456

Answers (8)

caiolopes
caiolopes

Reputation: 571

I really enjoy this set of shortcuts:

" Add shortcut for clipboard registers
noremap <leader>p "*p
noremap <leader>y "+y
noremap <leader>d "+d

It is just an easier way then type "* and "+ every time.

Upvotes: -1

ati
ati

Reputation: 307

You can do it; just pipe to xclip.

gg
V
G
:'<,'>w !xclip

from here: in vim with xclip, yank to clipboard

Upvotes: 2

lis2
lis2

Reputation: 4264

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

Upvotes: 4

Cory Klein
Cory Klein

Reputation: 55900

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.

Upvotes: 2

Big McLargeHuge
Big McLargeHuge

Reputation: 16066

I would open the file in the browser using a file URL:

file:///home/dave/some-file

Not super elegant but it works.

Upvotes: 0

dan-klasson
dan-klasson

Reputation: 14230

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

Upvotes: 8

sashang
sashang

Reputation: 12254

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

Upvotes: 29

DrAl
DrAl

Reputation: 72726

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.

Upvotes: 29

Related Questions