18
votes

I know how to copy in VI. but I failed to copy it into other application. That means I failed copy those into clipboard. How can I do this?

P.S. In order to lean more. I also want to ask how to copy content from clipboard to vi.

Edited: I am using MacOs. running Vim.

It seems *yy doesn't work here. Any other ways?

4
If you are on MacOS have you tried MacVim? It's a really great port of Vim that lets you use standard cmnd+C, cmnd+V for the clipboard, since the cmnd key does not interfere with Vim in any way. MacVim is pretty much my all time favorite editor :)Matt Greer

4 Answers

34
votes

You need to use the clipboard register, which is *, so to copy a line of text into clipboard:

"*yy

To paste a line of text from the clipboard:

 "*p
22
votes

"+y or "*y works only if your vim supports the xterm_clipboard. Xterm is a terminal emulator for X11. Try vim --version to see if it is supported. If you see +xterm_clipboard it should work, if you see -xterm_clipboard it won't. Now there are many Linux flavours which still have the xterm_clipboard support deactivated in their repositories. Yanking via clipboard is then impossible. Note that you still have the good old unix style of yank/paste, namely select the text you'd like to yank and middle-click on the mouse where you want to paste. This should work always and is the preferred style of yank/paste in vim. Be sure to be in insert mode and type set paste if it screws up the indentation. set nopaste to leave paste mode.

To get vim with xterm_clipboard, simply download the source, make a ./configure --with-x and then a make. Now vim should support xterm_clipboard and yanking and pasting should work flawlessly also from the clipboard.

5
votes
"+yy or "*yy to copy to clipboard
"+p or "*p to paste from clipboard

The " will put it into the + register.

For even more than you wanted to know: http://vim.wikia.com/wiki/Accessing_the_system_clipboard

3
votes

The copy of vi is done within vi's own internal clipboard, as its descended from the unix command line where the windows style clipboard didnt exist. Later came the mouse pointer for command line which meant you could copy using that as a more like windows style, but if you want to copy from vi to windows clipboard, you need to use *yy and *p, not yy and p which are the internal clipboard within vi (which is also why yanking and pasting dont effect your windows clipboard)