100 Vim commands every programmer should know
Since the 70's, Vi is one of the programmer's best friend. Nevermind you're new to Vi or not, here's a big list of 100 useful commands, organized by topic, which will make your coder life better.
Basics
:e filename |
Open filename for edition |
:w |
Save file |
:q |
Exit Vim |
:w! |
Exit Vim without saving |
Search
/word |
Search word from top to bottom |
?word |
Search word from bottom to top |
/jo[ha]n |
Search john or joan |
/\< the |
Search the, theatre or then |
/the\> |
Search the or breathe |
/\< the\> |
Search the |
/\< ¦.\> |
Search all words of 4 letters |
/\/ |
Search fred but not alfred or frederick |
/fred\|joe |
Search fred or joe |
/\<\d\d\d\d\> |
Search exactly 4 digits |
/^\n\{3} |
Find 3 empty lines |
:bufdo /searchstr/ |
Search in all open files |
Replace
:%s/old/new/g |
Replace all occurences of old by new in file |
:%s/old/new/gw |
Replace all occurences with confirmation |
:2,35s/old/new/g |
Replace all occurences between lines 2 and 35 |
:5,$s/old/new/g |
Replace all occurences from line 5 to EOF |
:%s/^/hello/g |
Replace the begining of each line by hello |
:%s/$/Harry/g |
Replace the end of each line by Harry |
:%s/onward/forward/gi |
Replace onward by forward, case unsensitive |
:%s/ *$//g |
Delete all white spaces |
:g/string/d |
Delete all lines containing string |
:v/string/d |
Delete all lines containing which didn’t contain string |
:s/Bill/Steve/ |
Replace the first occurence of Bill by Steve in current line |
:s/Bill/Steve/g |
Replace Bill by Steve in current line |
:%s/Bill/Steve/g |
Replace Bill by Steve in all the file |
:%s/\r//g |
Delete DOS carriage returns (^M) |
:%s/\r/\r/g |
Transform DOS carriage returns in returns |
:%s#<[^>]\+>##g |
Delete HTML tags but keeps text |
:%s/^\(.*\)\n\1$/\1/ |
Delete lines which appears twice |
Ctrl+a |
Increment number under the cursor |
Ctrl+x |
Decrement number under cursor |
ggVGg? |
Change text to Rot13 |
Case
Vu |
Lowercase line |
VU |
Uppercase line |
g~~ |
Invert case |
vEU |
Switch word to uppercase |
vE~ |
Modify word case |
ggguG |
Set all text to lowercase |
:set ignorecase |
Ignore case in searches |
:set smartcase |
Ignore case in searches excepted if an uppercase letter is used |
:%s/\<./\u&/g |
Sets first letter of each word to uppercase |
:%s/\<./\l&/g |
Sets first letter of each word to lowercase |
:%s/.*/\u& |
Sets first letter of each line to uppercase |
:%s/.*/\l& |
Sets first letter of each line to lowercase |
Read/Write files
:1,10 w outfile |
Saves lines 1 to 10 in outfile |
:1,10 w >> outfile |
Appends lines 1 to 10 to outfile |
:r infile |
Insert the content of infile |
:23r infile |
Insert the content of infile under line 23 |
File explorer
:e . |
Open integrated file explorer |
:Sex |
Split window and open integrated file explorer |
:browse e |
Graphical file explorer |
:ls |
List buffers |
:cd .. |
Move to parent directory |
:args |
List files |
:args *.php |
Open file list |
:grep expression *.php |
Returns a list of .php files contening expression |
gf |
Open file name under cursor |
Interact with Unix
:!pwd |
Execute the pwd unix command, then returns to Vi |
!!pwd |
Execute the pwd unix command and insert output in file |
:sh |
Temporary returns to Unix |
$exit |
Retourns to Vi |
Alignment
:%!fmt |
Align all lines |
!}fmt |
Align all lines at the current position |
5!!fmt |
Align the next 5 lines |
Tabs
:tabnew |
Creates a new tab |
gt |
Show next tab |
:tabfirst |
Show first tab |
:tablast |
Show last tab |
:tabm n(position) |
Rearrange tabs |
:tabdo %s/foo/bar/g |
Execute a command in all tabs |
:tab ball |
Puts all open files in tabs |
Window spliting
:e filename |
Edit filename in current window |
:split filename |
Split the window and open filename |
ctrl-w up arrow |
Puts cursor in top window |
ctrl-w ctrl-w |
Puts cursor in next window |
ctrl-w_ |
Maximise current window |
ctrl-w= |
Gives the same size to all windows |
10 ctrl-w+ |
Add 10 lines to current window |
:vsplit file |
Split window vertically |
:sview file |
Same as :split in readonly mode |
:hide |
Close current window |
:nly |
Close all windows, excepted current |
:b 2 |
Open #2 in this window |
Auto-completion
Ctrl+n Ctrl+p (in insert mode) |
Complete word |
Ctrl+x Ctrl+l |
Complete line |
:set dictionary=dict |
Define dict as a dictionnary |
Ctrl+x Ctrl+k |
Complete with dictionnary |
Marks
mk |
Marks current position as k |
˜k |
Moves cursor to mark k |
d™k |
Delete all until mark k |
Abbreviations
:ab mail mail@provider.org |
Define mail as abbreviation of mail@provider.org |
Text indent
:set autoindent |
Turn on auto-indent |
:set smartindent |
Turn on intelligent auto-indent |
:set shiftwidth=4 |
Defines 4 spaces as indent size |
ctrl-t, ctrl-d |
Indent/un-indent in insert mode |
>> |
Indent |
<< |
Un-indent |
Syntax highlighting
:syntax on |
Turn on syntax highlighting |
:syntax off |
Turn off syntax highlighting |
:set syntax=perl |
Force syntax highlighting |
从 <http://www.catswhocode.com/blog/100-vim-commands-every-programmer-should-know> 插入
Jun 03, 2021 12:26:54 AM
By reading the data you described here, I think 100 Vim commands are very important to programmers. national margarita day It just needed to begin a console window and enter the command line needed, in order to learn and practice.
Sep 29, 2021 10:16:17 AM
This was very helpful for me to know about this one. the page here There was a lot of things that I go through from here. The alignments and the commands was too clear and understanding for me. Thank you.
Oct 01, 2021 02:01:24 PM
The details given here are various keywords and programming codes that is used in programming.So it will be helpful and useful for those people who are vegas airport renaming working in the IT field or studying in IT department
Oct 01, 2021 02:19:30 PM
Thanks a lot for sharing the commands and it really helped us a lot which is useful content as a programmer as I got many information through this page Sending healing energy and I request you to come up with more helpful content