How to copy a selection to the OS X clipboard
Solution 1:
For MacVim and Windows Gvim, simply add the following to your ~/.vimrc
:
set clipboard=unnamed
Now all operations such as yy
, D
, and P
work with the clipboard. No need to prefix them with "*
or "+
.
Solution 2:
If the clipboard is enabled, you can copy a selected region to the clipboard by hitting "*y
To see if it is enabled, run vim --version
and look for +clipboard
or -clipboard
. For example, it's not enabled by default on my 10.5.6 box:
% which vim /usr/bin/vim % vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 11 2008 17:20:43) Included patches: 1-22 Compiled by [email protected] Normal version without GUI. Features included (+) or not (-): ... -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...
If it had been compiled with +clipboard
, I'd be able to use the "*
register to access the system clipboard.
I downloaded the 7.2 source and compiled it (easy as tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install
), and the clipboard was enabled:
% which vim /usr/local/bin/vim % vim --version VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 24 2009 17:31:52) Compiled by [email protected] Normal version with GTK2 GUI. Features included (+) or not (-): ... +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments ...
However, even after compiling, I couldn't copy to the clipboard when running vim in Terminal.app, only in X11.app.
Solution 3:
You can visually select text and type :w !pbcopy<CR>
Or you can include the below key mappings in your ~/.vimrc
file. They cut/copy text in visual mode to the operating system's clipboard.
vmap <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
source: http://drydevelopment.com/blog/vim-pbcopy-on-os-x
Solution 4:
Depending on which version of Vim I use, I'm able to use the +
register to access the clipboard.
"Mac OS X clipboard sharing" may have some ideas that work for you as well.