How to select all and copy in vim?
There are a few important informations missing from your question:
- output of
$ vim --version
? - OS?
- CLI or GUI?
- local or remote?
- do you use tmux? screen?
If your Vim was built with clipboard support, you are supposed to use the clipboard register like this, in normal mode:
gg"+yG
If your Vim doesn't have clipboard support, you can manage to copy text from Vim to your OS clipboard via other programs. This pretty much depends on your OS but you didn't say what it is so we can't really help.
However, if your Vim is crippled, the best thing to do is to install a proper build with clipboard support but I can't tell you how either because I don't know what OS you use.
edit
On debian based systems, the following command will install a proper Vim with clipboard, ruby, python… support.
$ sudo apt-get install vim-gnome
@swpd's answer improved
I use ,
as a leader key and ,a
shortcut does the trick
Add this line if you prefer ,a
shortcut
map <Leader>a :%y+<CR>
I use Ctrl y
shortcut to copy
vmap <C-y> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>:call system("xclip -i", getreg("\""))<CR>
And ,v
to paste
nmap <Leader>v :call setreg("\"",system("xclip -o -selection clipboard"))<CR>p
Before using this you have to install xclip
$ sudo apt-get install xclip
Edit: When you use :%y+
, it can be only pasted to Vim vim Ctrl+Insert
shortcut.
And
map <C-a> :%y+<Esc>
is not conflicting any settings in my Vimrc.
In normal mode:
gg"+yG
In ex mode:
:%y+