1. 啟動(dòng)vim編譯器
vim filename 打開原有的文件或創(chuàng)建一個(gè)新文件。
vim 打開一個(gè)新文件,在編輯過程中或結(jié)束編輯時(shí)再指定文件名。
vim –r filename 恢復(fù)因意外停機(jī)或終端連接中斷而未及時(shí)保存最終編輯結(jié)果的文件。
view filename 以只讀方式打開文件。除了不能把編輯處理的最終結(jié)果寫入文件保存之外,view的所有編輯功能均與vim無異。
2. 光標(biāo)定位命令
←↑↓→ 將光標(biāo)左移、上移、下移或右移一個(gè)字符(行)位置。
h j k l 同上。
- 光標(biāo)上移一行。
Enter鍵(或加號(hào)“+”)光標(biāo)下移一行。
退格鍵 將光標(biāo)左移一個(gè)字符位置。
空格鍵 將光標(biāo)右移一個(gè)字符位置(命令模式)。
Ctrl+F 往下(文件結(jié)尾方向)滾動(dòng)一屏。
Ctrl+B 往上(文件開始方向)滾動(dòng)一屏。
Ctrl+D 往下滾動(dòng)半屏。
Ctrl+U 往上滾動(dòng)半屏。
Ctrl+E 編輯窗口中的文件內(nèi)容整體上移一行。
Ctrl+Y 編輯窗口中的文件內(nèi)容整體下移一行。
w 將光標(biāo)右移一個(gè)字。光標(biāo)停留在下一個(gè)字的字首位置。
W 將光標(biāo)右移一個(gè)字。光標(biāo)停留在下一個(gè)字的字首位置(即使兩個(gè)字之間存在標(biāo)點(diǎn)符號(hào))。
b 將光標(biāo)左移一個(gè)字。光標(biāo)停留在下一個(gè)字的字首位置。
B 將光標(biāo)左移一個(gè)字。光標(biāo)停留在下一個(gè)字的字首位置(即使兩個(gè)字之間存在標(biāo)點(diǎn)符號(hào))。
e 把光標(biāo)移至當(dāng)前所在字(或下一個(gè)字)的最后一個(gè)字符位置。
E 同上,只是以空格字符作為字的分隔符。
^ 把光標(biāo)移至當(dāng)前行的起始位置,也即當(dāng)前行的第一個(gè)非空白字符位置
0(零) 同上
$ 把光標(biāo)移至當(dāng)前行的行尾,也即當(dāng)前行的最后一個(gè)字符位置。
H 把光標(biāo)移至編輯窗口頂部第一行的行首位置。
M 把光標(biāo)移至編輯窗口中間一行的行首位置。
L 把光標(biāo)移至編輯窗口底部最后一行的行首位置。
3. 插入文本數(shù)據(jù)
a 在光標(biāo)當(dāng)前所在字符位置的后面輸入文本數(shù)據(jù)。
A 在光標(biāo)當(dāng)前所在行的行尾(也即最后一個(gè)字符位置)后面輸入文本數(shù)據(jù)。
i 在光標(biāo)當(dāng)前所在字符位置的前面輸入文本數(shù)據(jù)。
I 在光標(biāo)當(dāng)前所在行的行首(也即在第一個(gè)非空白的起始字符)前面輸入文本數(shù)據(jù)。
o 在光標(biāo)當(dāng)前所在行下面的行首位置輸入文本數(shù)據(jù)。
O 在光標(biāo)當(dāng)前所在行上面的行首位置輸入文本數(shù)據(jù)。
4. 修改文本
C 替換當(dāng)前文本行光標(biāo)所在字符位置之后的所有數(shù)據(jù),以Esc鍵結(jié)束。
cw 替換光標(biāo)當(dāng)前所在字符位置及之后的整個(gè)字或部分字,以Esc鍵結(jié)束。
[n]cc 替換當(dāng)前行,或從當(dāng)前行開始的n行文本,以Esc鍵結(jié)束。
[n]s 替換光標(biāo)當(dāng)前所在位置的單個(gè)字符,或從光標(biāo)當(dāng)前位置開始的n個(gè)字符,以Esc鍵結(jié)束。
S 替換當(dāng)前行,以Esc鍵結(jié)束。
r 替換光標(biāo)當(dāng)前所在位置的單個(gè)字符。
r<Enter> 斷行。也可使用“a”或“i”命令加Enter及Esc鍵實(shí)現(xiàn)。
R 從光標(biāo)當(dāng)前所在的字符位置開始,替換隨后的所有字符,直至按下Esc鍵。
xp 交換字符位置。交換光標(biāo)當(dāng)前所在位置開始字符位置。
~ 轉(zhuǎn)換光標(biāo)當(dāng)前所在位置字符的大小寫。
u 撤銷最近一次執(zhí)行的編輯命令,或依次撤銷先前執(zhí)行的編輯命令。
:u 同上(ex編輯命令)。
U 撤銷施與當(dāng)前文本行的編輯處理。
5. 刪除文本
[n]x 刪除光標(biāo)當(dāng)前所在位置的字符,或刪除從光標(biāo)當(dāng)前位置開始的n個(gè)字符。
[n]X 刪除光標(biāo)當(dāng)前所在位置的前一個(gè)字符,或刪除光標(biāo)當(dāng)前所在位置之前的n個(gè)字符。
dw 刪除光標(biāo)當(dāng)前所在位置的一個(gè)整字或部分字符。如果光標(biāo)在字首,則刪除整字。如果光標(biāo)在字的中間任何位置,則刪除光標(biāo)位置及之后的字符。
[n]dd 刪除光標(biāo)當(dāng)前所在的文本行,或刪除從當(dāng)前行開始的n個(gè)文本行。
D 刪除當(dāng)前文本行從光標(biāo)位置開始之后的所有字符。
dG 刪除從當(dāng)前行開始直至文件最后一行的所有文本行。
d[n]G 刪除從文件的第n行開始直至當(dāng)前行的所有文本行。
:line#1,line#2 d 刪除從指定的行號(hào)line#1到line#2之間的所有文本行。
6. 復(fù)制與移動(dòng)文本
[n]yy 復(fù)制光標(biāo)當(dāng)前所在的文本行,或從當(dāng)前行開始的n個(gè)文本行。
[n]Y 同上。
p(小寫) 把復(fù)制或刪除(“dd”命令)的文本行粘貼到光標(biāo)所在行的下面。
P(大寫) 把復(fù)制或刪除(“dd”命令)的文本行粘貼到光標(biāo)所在行的上面。
:line#1,line#2 co line#3 把第line#1~line#2行復(fù)制到第line#3行之后。
:line#1,line#2 m line#3 把第line#1~line#2行移至第line#3行之后。
7. 設(shè)置行號(hào)顯示
:set nu 在編輯期間增加臨時(shí)行號(hào)。
:set nonu 撤銷行號(hào)顯示(默認(rèn)情況)。
Ctrl+G 顯示當(dāng)前文件的名字和當(dāng)前文本行的行號(hào)。
8. 設(shè)置大小寫字母檢索準(zhǔn)則
:set ic 檢索字符串時(shí)忽略字母的大小寫。
:set noic 檢索字符串時(shí)嚴(yán)格區(qū)分字母的大小寫(默認(rèn)情況)。
9. 定位文本行
G 將光標(biāo)移至文件的組后一行。
[n]G 將光標(biāo)移至文件的第n行。
10. 檢索與替換
:/string 向前(文件結(jié)尾方向)檢索指定的字符串。
:?string 向后(文件開頭方向)檢索指定的字符串。
n 將檢索方向找出下一個(gè)匹配的字符串。
N 逆檢索方向找出前一個(gè)匹配的字符串。
:[g]/search/s//replace/[g][c] 檢索并替換字符串。
11. 清除屏幕
Ctrl+L 清除因其他進(jìn)程的輸出信息而干擾的編輯窗口。
12. 合并文件與合并行
:r filename 在光標(biāo)所在行之后插入指定文件的內(nèi)容。
: line#1 r filename 在第line#1行之后插入指定文件的內(nèi)容。
J 把相鄰的兩個(gè)文本行個(gè)并為一行(把下一行合并到光標(biāo)當(dāng)前所在行的后面)。
13. 保存編輯結(jié)果與退出vim編輯器
:w 保存編輯處理后的結(jié)果(把內(nèi)存緩沖區(qū)中的數(shù)據(jù)寫到文件中)。
:w! 強(qiáng)制保存編輯處理后的結(jié)果。
:wq 保存編輯處理后的結(jié)果,然后退出vim編輯器。
:wq! 強(qiáng)制保存編輯處理后的結(jié)果,然后退出vim編輯器。
ZZ 保存編輯處理后的結(jié)果,然后退出vim編輯器。
:q 在未做任何編輯處理時(shí),可以使用此命令退出vim編輯器。
:q! 強(qiáng)制退出vim編輯器,放棄編輯處理后的結(jié)果。
:w filename 把編輯處理后的結(jié)果寫到指定的文件中保存。
:w! filename 把編輯處理后的結(jié)果強(qiáng)制寫到指定的文件中保存,即使文件已經(jīng)存在。
:wq! filename 把編輯處理后的結(jié)果強(qiáng)制寫到指定的文件中保存,即使文件已經(jīng)存在,然后退出vim編輯器。
14. 其他
;f 或 Ctrl+G 顯示文件的名字、編輯狀態(tài)、文件總的行數(shù)、光標(biāo)當(dāng)前所在行號(hào)和列號(hào),以及當(dāng)前行之前的行數(shù)占整個(gè)文件總行數(shù)的百分比。
Ctrl+V 輸入控制字符。