How do I select all the content of a file in Vim and VsVim? Like in other editors Ctrl-A does the job for select all.
9 Answers
ggVG
selects all content. gg
moves to first line. V
starts visual mode. G
jumps to last line thereby selecting from first to last line
-
1
-
2
-
It may be unnecessary to capitalize the 'V' here, since the "whole line" part seems moot because the two boundaries are at the very beginning and the very end of the file. Apr 16 at 16:21
Along with SibiCoder's answer, if you have a clear idea of what you want to do you can use the following:
:%X
Where X
is a command, for example:
:%d -> delete every line
:%y -> yank every line
:%normal! >> -> indent every line
You have also the global command :g
which, with the search pattern ^
, can do the same thing:
:g/^/d -> delete every line
:g/^/y -> yank every line
:g/^/normal! >> -> indent every line
If what you want is selecting the text, then ggVG
is fine, but keep in mind these method, in the case you already know what is the next step. Note that it won't leave the cursor in visual mode.
See: :h :%
and :h :g
for reference.
Note that, even though the C-A
mapping is used in vim (see :h CTRL-A
), you can map it to do what other editors do:
nnoremap <C-A> ggVG
Just be aware that mapping C-A
could clash with other plugins' mappings or with screen
's default prefix.
The other answers are good. Here's another alternative.
Since you mention that you are using VsVim, you can change which keys are handled by visual Studio, and which keys are handled by vsvim. Go to
Tools -> Options -> VsVim -> Keyboard
From there you can set Ctrl-a to be handled by Visual Studio, rather than VsVim.
Although I do not recommend this since you will not be able to use vim's <C-a>
, which I find to be an essential feature. Though it's up to you.
As @SibiCoder mentioned ggVG
does the trick, but I like something closer to Ctrl+A
.
So I added this line to my .vimrc
nnoremap <leader>a ggVG
Now pressing <leader>a
will select everything, in my case it's \a
.
-
Welcome to Vi and Vim! Theoretically you could map control a (
<C-a>
), but it happens to have a useful default functionality– D. Ben Knoble ♦Jan 16, 2021 at 2:59 -
1
-
If you'd like a faster/more intuitive way to do this and don't mind adding a plugin, this looks handy: https://github.com/kana/vim-textobj-entire
you can use a big number like 99999yy to select all the content of your file
-
5Files larger than
100000
lines are possible, though rare. Also, usingyy
will yank them, not select them. Aug 3, 2016 at 6:43 -
1yah sure you are right but when selecting something it's for the most cases to cut,copy or delete them :) Aug 4, 2016 at 8:51
-
-
2Just
:%y
is enough. Or:%y +
to yank everything in the+
register. Nov 20, 2020 at 14:09
:1
puts your cursor at the beginning of the 1st line. Then VG
selects everything.
Then you do whatever you want with the selection: yank, delect, copy, ...
Go to Edit-->SelectAll from toolbar
-
1Works in GUI mode. You will notice that behind "SelectAll" it says
ggVG
. Many experienced vi users will find it cumbersome to take their hands of their keyboards ;) Jan 24 at 16:31
I used to use map <leader>a ggVG
to select all, but later I found that Cmd+V
/Ctrl+V
pasting has an extra new line. So nowadays, I use:
map V 0v$
map Vk $v0k
map <leader>a ggVG
Which works without side effects.
ctrl+a
in other editors visually highlights the entire file.:chat!
, but you haven't been in that room recently, so it wouldn't let me)vsvim
was likevimperator
and this kind of plugins for other softwares and thus was off topic so I removed it, then I had a doubt so I checked meta and saw that it was on topic so I approved your tag edit but forgot to edit the question again. I'm changing that right now, sorry for that.