|
Vim is developed from out of a vi text editor. Finished up the code, compile, and error jump conveniences such programming is particularly rich, it is widely used among programmers. Emacs and tied for the Unix-like system users favorite editor. Here a collection of 130+ programmers essential vim commands to help you improve development efficiency.
Basic Commands
: E filename Open filename for edition
: W Save file
: Q Exit Vim
:! Q Quit without saving
: X Write file (if changes has been made) and exit
: Sav filename Saves file as filename
. Repeats the last change made in normal mode
5. Repeats 5 times the last change made in normal mode
Move in the file
k or Up Arrow move the cursor up one line
j or Down Arrow move the cursor down one line
e move the cursor to the end of the word
b move the cursor to the begining of the word
0 move the cursor to the begining of the line
G move the cursor to the end of the file
gg move the cursor to the begining of the file
L move the cursor to the bottom of the screen
: 59 move cursor to line 59. Replace 59 by the desired line number.
20 | move cursor to column 20.
% Move cursor to matching parenthesis
[[Jump to function start
[{Jump to block start
Cut, Copy and Paste
y Copy the selected text to clipboard
p Paste clipboard contents
dd Cut current line
yy Copy current line
y $ Copy to end of line
D Cut to end of line
search for
/ Word Search word from top to bottom
? Word Search word from bottom to top
* Search the word under cursor
/ \ Cstring Search STRING or string, case insensitive
/ Jo [ha] n Search john or joan
/ \
/ The \> Search the or breathe
/ \ 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
bufdo% s / something / somethingelse / g Search something in all the open buffers and replace it with somethingelse
replace
:% S / old / new / g Replace all occurences of old by new in file
:% S / onward / forward / gi Replace onward by forward, case unsensitive
:% S / old / new / gc 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 did not 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 / ^ M // 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
gggUG Set all text to uppercase
: 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
Reading and Writing 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 Browser
:. E Open integrated file explorer
: Sex Split window and open integrated file explorer
: Sex Same as:! Sex but split window vertically
: 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
And interactive Unix systems
:! 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
Align
:!% Fmt Align all lines
!} Fmt Align all lines at the current position
5 !! fmt Align the next 5 lines
Tab / Window
: 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
: New abc.txt Edit abc.txt in new window
Split-screen display
: 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_ Maximize current window vertically
ctrl-w | Maximize current window horizontally
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
AutoComplete
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
mark
m {a-z} Marks current position as {a-z}
'{A-z} Move to position {a-z}
'' Move to previous position
abbreviation
: 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
=% Indent the code between parenthesis
1GVG = Indent the whole file
Code highlighting
: Syntax on Turn on syntax highlighting
: Syntax off Turn off syntax highlighting
: Set syntax = perl Force syntax highlighting |
|
|
|