:w
:wq
:q
:q!
ZZ
:10,20w filename
:x
光标移动
h : Move left
i : Move right
j : Move down
k : Move up
: act as j in command mode
: act as k in command mode
w : Move to next word
W : Move to next blank delimited word
b : Move to the beginning of the word
B : Move to the beginning of blank delimiter word
e : Move to the end of the word
E : Move to the end of Blank delimited word
ge : jump to previous word-ending
gE : jump to previous word-ending, ignore punctuation(忽略标点符号)
g_ : jump to last non-blank character of the line
( : Move a sentence back
) :Move a sentence forward
{ : Move a paragraph back
} : Move a paragraph forward
0 : Move to the beginning of the line [ 0 and | acts as a Home key it goes to beginning of a line ]
$ : Move to the end of the line, acts as a End key
:1 : Move to the first line of the file
G : Move to the last line of the file
nG : Move to nth line of the file
:n : Move to nth line of the file
fc :Move forward to c (c= character)
Fc : Move back to c
H :Move to top of screen
M :Move to middle of screen
L : Move to bottom of screen
插入文本
i : Insert before cursor
I : Insert before line
a : Append after cursor
A : Append after line
o : Open a new line after current line
O : Open a new line before current line
r : Replace one character
删除、剪切、复制文本
d^ : Deletes from current cursor position to the beginning of the line.
d$ : Deletes from current cursor position to the end of the line.
dw : Deletes from current cursor position to the end of the word.
dd : Deletes three lines from current cursor position downwards.(also :d)
yy : Yank the current line (also :y)
x : Delete a character next to the cursor
X : Delete character to the left of cursor
P : Paste line before the cursor
p : Paste line after the cursor
. : Repeat last edit command
u : Undo last edit (Ctrl+r redo)
U : Undo changes to current line
J : Join two lines
In Escape mode: C is delete the line from under the cursor to end of the line.
文本补全
在插入模式下,
C-p 单词补全
C-x C-l 当前文件整行补全
C-x C-k do a dictionary lookup for the already typed characters.
C-x C-f 文件名打印
大小写翻转
~ :changes the lower case to upper case of current character
~guu :change current line from upper to lower.
~gUU :Change current LINE from lower to upper.
~guw :Change current WORD from upper to lower.
~gUw :Change current WORD from lower to upper.
g~~ :Invert case to entire line
:lineno goes to line in execution mode
:.= gives current cursor position of line
:= total no of lines in file
Ctrl+h acts as a backspace in insert mode
shift + 9 goes to sentence starting point in backward
shift + 0 goes to sentence starting point in forward
:e is used for editing another file with out quiting the vim editor cltrl+^ is used to toggle between the two files.
:syn on command in vimrc file will highlight the syntax during inserting the contents in program.
Opening Man page from VIM
K (Shift+k) will diplays the man page of current word under the cursor
Splitting Windows
:sp will split the window
:q to quit from current split window
Crtl+ww navigate through another file
:bnext (or :bn) go to next buffer
:bprev (or :bp) go to previous buffer
:bd delete a buffer (close a file)
Ctrl+ws Split windows
Ctrl+ww Switch between windows
Ctrl+wq Quit a window
Ctrl+wv Split windows vertically.
Set Options
:set showmode - will show the current mode
:set autowrite - will write into file when we are toggling between two files with in editor.
:set autoindent - it is used for intendation the code.
Displaying Line Numbers
From Command Mode
:set nu [OR] :set number Display line numbers It will not save in file after closing the file.
:set nonu [OR] :set nonumber Hide line numbers
:set nomagic - will special character meaning, like * as some meaning when searching
:set tabstop - will set the spaces of tab key default it will 8 spaces
:set showmatch - will show the match of that brace default it will be setted.
:set spell will set the spell checking and high light wrong spell words.
Folding
If we want to folding some few lines in vim file:
First select the lines after type :fold
The selected line is folded.
If we want to open the folded lines use "zo".
If we want to close the folding lines use zc".
zR Unfold all folded lines in file.
za Open/close (toggle) a folded group of lines.
zA Open a closed fold or close an open fold recursively.
zc Close a folded group of lines.
zC Close all folded lines recursively.
zd Delete a folded line.
zD Delete all folded lines recursively.
zE Eliminate all folded lines in file.
zF Create "N" folded lines.
Recording
Insert mode type 1. Escape mode. q a press q buffer name copy and paste. Ctrl+a increments the number in current cursor Ctrl+x decrements the number in current cursor q to quit from recording to execute the recording buffer: 10 @ buffername(a)
Ctrl + a => increase a number under the cursor.
Ctrl + x => decrease a number under the cursor.
Mapping a key
In vim editor we can map the key for our requirement for that we use map command
Syntax: :map keyname work
Eg: :map
The key can be unmapped by unmap command Syntax: :unmap
This mapping key is useful for compiling and executing a program
Abbreviation
Abbreviation is used in this vim editor Syntax: :ab abbreviatedword explanation Eg: :ab w work
Ctrl+f forward scroll screen
Ctrl+b backward scroll screen
Ctrl-d Scroll down one half of a page
Ctrl-u Scroll up one half of a page
. will execute the last command in execution mode
In split window N goes backward to navigate
^w+ resizing the current split window to larging
^w- To decreasing the size of current split window
p put after current cursor
P put before the current cursor
In Insert mode Ctrl+w is used to cut the current word.
we can open multiple file at same time by passing all filename in vim command in single line. :next is used to go to next file.
J concatenates the line by deleting the end of line
:set aw this command ensures that file saved automatically before switching.
: on removes all other windows in split window and current window will become the full screen.
Buffer can be used in this file to create buffer "buffername commands output command is stored in buffername. Eg: "a3yy - copy the 3 lines and stored in a buffer
We can replace the particular word in particular range of line Syntax: %10s/new/old/g - global
: pwd Print the current directory name.
p and P differs on entire line and part of line deleted or yanked.
P places it left when word is deleted or cutted or yanked.
p places it right when word is deleted or cutted or yanked.
P places it above when entire line is deleted or yanked.
p places it below when entire line is deleted or yanked.
In Insert Mode
^t give tab in beggining of a line
^y copies above character and paste
^u undo the operation
^i gives tab in current position
^o goes to command mode and accept only one command and return back to insert mode
^a place the buffer which has inserted text after opening the file.
^j and ^m acts as a enter key
^k insert before the current position
^c goes to command mode
In execution shift>> acts as tab instead of tab character
B,W,E navigate between words but they ignore punctuations.
:.!tr '[a-z]' '[A-Z]' - will convert case lower to upper in current line
:map r :wVM will save the file when press r in command mode
^M is set to be enter key in mapping
Visual mode.
Shift+v is to select a line Ctrl+v is to select a block of text.
gv is used to reselect the last selection part in visual mode.
If you select some lines in visual mode using Ctrl+v or Shift+v. later you want to select last selection in lines use gv.
% keystroke
The % is used to match the item under the cursor. The item under the cursor can be a parenthesis, a curly bracket or a square bracket. By pressing the % key the cursor will jump to the corresponding match.
You can open your .vimrc file in your vim file itself. See the following example
Code:
:e ~/.vimrc
[or]
Code:
:e $MYVIMRC
For C coding in VIM
gd keystroke The gd keystroke stands for Goto Declaration With the cursor on x if you hit gd the cursor will take you to the declaration of x.
A similar keystroke is gD. This takes you to the global declaration of the variable under the cursor.
Automatically indent code.
:set cindent It automatically indent the C coding file.
single quot dot ('.) is go to the last modification line in a file.
(`") back tick and double quote is goes to the last modification character.
:history - list the .viminfo informations ( recent commands executed in vim.)
q: - it will open a list on executed commands in separate window
Encrypting.
If you want to set Encrypt key(password) to your file use the following command
Code:
:X
While opening a file you need to give the Encryption key.
Vim Command Line options.
vim + file_name
- it will place the cursor at end of the after opening.
+n it will place the cursor at nth line of the file.
Ex: vim +3 fine_name it place the cursor at 3rd line of the file.
vim +/pattern filename
+/pattern ( vim +/hi filename). the cursor is first occurrence of the pattern line
+n/pattern ( vim +3/hi filename) cursor is nth occurrence of the line.
if you want to search a pattern like "Welcome to vim", see the following examples.
quote the string.
Code:
vim +/"to vim" filename
escape the space.
Code:
vim +/to\ vim a
-R Option is used to open a file in read only mode(you can't edit that file.
:e! returns you to the last saved version of the file, so you can start over.
yl is used to copy a single character.
^ Move to first non-blank character of current line.
n| Move to column n of current line.
Current Line Searches
fx Find (move cursor to) next occurrence of x in the line, where x stands for any character.
Fx Find (move cursor to) previous occurrence of x in the line.
tx Find (move cursor to) character before next occurrence of x in the line.
Tx Find (move cursor to) character after previous occurrence of x in the line.
; Repeat previous find command in same direction.
, Repeat previous find command in opposite direction.
vim全局替换
()代替单词
\|或
/(bred)\|(help)\|搜索文件中的bred或者help等单词
vim删除特定行
:g/profile/d
删除所有含有profile的行