Copy all the lines to clipboard

Viewed 1123042

Is there any way to copy all lines from open file to clipboard in VI editor. I tried yG but it's not using clipboard to store those lines.

So is it possible?

27 Answers

you can press gg to locate your curser to the start of the file,then press yG to copy all the content from the start to end(G located) to buffer.good luck!

I have added the following line to my .vimrc

nnoremap <F5> :%y+<CR>

This allows me to copy all text in Vim to the clipboard by pressing F5 (in command mode).

I know ten years on this should be settled but the first two answers did not work for me so I kept digging. On a Redhat (remote server) - Windows 10 (local machine), if you cannot select the whole thing with a mouse, you are stuck because the usual copies do not work between the remote and the local machine clipboards.

So, to copy on the remote Linux and to paste on the local Windows, specify the primary buffer with the * and do a nice double yank

Use gg" * yy.

You can use a shortcur, like this one:

noremap <F6> :%y+<CR>

It means, when you push F6 in normald mode, it will copy the whole file, and add it to the clipboard. Or you just can type in normal mode :%y+ and then push Enter.

While many of the above answers are excellent, none of those solutions worked for me because I'm using the default VIM installation which came with Ubuntu 16.04, and it didn't have the clipboard option installed by default. I also wanted to paste the text into an external program.

Solution that worked: Ubuntu's default terminal allows you to highlight the entire contents by pressing Edit then Select All.

I use Vim in PowerShell and when I needed to copy a short block of code to windows clipboard;

I use :set nonumber to remove line numbers, then select the code visually with cursor and right click. Then I paste it to where ever I want with Ctrl + V.

I couldn't copy files using the answers above but I have putty and I found a workaround on Quora.

  1. Change settings of your PuTTY session, go to logging and change it to "printable characters". Set the log file
  2. Do a cat of the respective file
  3. Go to the file you set in step #1 and you will have your content in the log file.

Note: it copies all the printed characters of that session to the log file, so it will get big eventually. In that case, delete the log file and cat the target file so you get that particular file's content copied on your machine.

Related