vim分為三種模式:命令模式,編輯模式,末行模式。
命令模式:對文檔進復制,粘貼,替換,移動光標查找等等。
編輯模式:用于對文檔進行添加,刪除,修改等等操作。
末行模式:文件的保存,推出,定位光標,查找替換,設置行標等等。
進入編輯模式命令及解釋:
i:從光標所在位置前面開始插入文本,類似insert鍵。
I:從光標所在行的行首開始插入文本。
a:從光標所在位置后面開始插入文本。
A:從光標所在行的行尾開始插入文本。
s:刪除光標所在字符并開始插入文本。
S:刪除光標所在行并開始插入文本。
o:在光標所在行的下方新增一行并開始插入文本。
O:在光標所在行的上方新增一行并開始插入文本。
r:替換光標所在位置的字符。
R:替換光標所在位置,一直替換到按Esc為止。
u:恢復光標所在位置的單個字符操作。
U:恢復光標所在行的操作。
ctrl+r:重復上一個操作。
J:合并光標所在行與下一行。
進入末行模式命令及解釋:
: 在命令模式的下方輸入需要執(zhí)行的命令。
/ 在命令模式的下方輸入搜索的字符串,從光標位置開始向下搜索,按n重復前一個搜索動作,按N方向重復前一個搜索動作。
? 在命令模式的下方輸入搜索的字符串,從光標位置開始向上搜索,按n重復前一個搜索動作,按N反向重復前一個搜索動作。
推出VIM編輯器命令及解釋:
q:沒有對文檔做過任何修改,退出。
q!:有對文檔做過修改,但墻紙不保存退出。
qw或x:對文檔的修改進行保存推出,在命令后加!表示強制保存退出。
zz:若文檔沒有修改,則不保存退出;若文檔已經(jīng)修改,則保存后退出。
快捷命令:
x/X/nx:向后/前刪除一個或者n個字符
dd/ndd:刪除光標所在行或者向下刪除n行
d1G/dgg:刪除光標位置到第一行的所有數(shù)據(jù)
dG:刪除光標位置到最后一行的所有數(shù)據(jù)
d0/d$:刪除光標位置到該行行首/尾
cw/ncw:更改光標位置的一個字符或n個字符
yy/nyy:復制光標所在位置到第一行或向下n行
y1G/ygg:復制光標位置到第一行的所有行
yG:復制光標位置到最后一行的所有行
y0/y$:復制光標位置到該行行首或行尾
yw/nyw:復制光標位置一個字符或n個字符
p/P:粘貼到光標位置下/上一行
光標移動快捷鍵:
h/j/k/l:光標向左/下/上/右
nj:向下移動n行
ctrl+f/b/u/d:屏幕向下/上/移動半頁/移動一頁
n<space>:光標向后移動n個字符
n<Enter>:光標向下移動n行
H/M/L:光標移動到屏幕上/中/下
+/-:光標移動到非空字符的下/上一行
o/^:光標移動到行首
$:光標移動到行尾
gg:光標移動到第一行
G:光標移動到最后一行
nG:光標移動到第n行
VIM末行模式下常用操作:
n1,n2s/word1/word2/g:從n1行到n2行之間的word1替換成word2,如果沒有,g則只替換第一個匹配。
1,$s/word1/word2/gc:從第一行到最后一行之間的word1替換為word2,c代表每次確認。
%s/^/word2/g:在整個文件每行行首插入word2
%s/$/word2/g:在整個文件每行行尾插入word2
%/var/char-&/g:在整個文件中匹配到var后替換為char-var,&代指匹配的結(jié)果,可能為正則匹配的多種結(jié)果,可能為正則匹配的多種結(jié)果。
其他末行模式常用的命令:
w/w?。罕4嫖募?強制保存文件
w filename:保存為filename文件
n1,n2 w filename:從n1到n2行另存為filename文件
r filename :讀取另外文件到正在編輯的文件
! command:暫時離開vi執(zhí)行命令
r ! command:把命令的輸出插入當當前
sh :轉(zhuǎn)動shell,輸入exit返回
e!:將文件還原
set nu/set nonu:設置行號/取消行號
set autoindent:設置自動對齊格式(取消set noautoindent)
set ruler:設置屏幕底部顯示光標所在的行列位置
set ignorecase:忽略正則表達式中的大小寫
no hl search :取消搜索到的關(guān)鍵字的高亮顯示
VIM的其他操作
塊操作:
命令模式下按V則進入操作;移動光標選定操作塊;按y復制,按c鍵剪切,按p粘貼。
水平分隔窗口命令,同時水平排列打開文件file1.txt和file.txt
[root@leoH ~]# vim -o file1.txt file.txt
垂直分隔窗口命令,同時垂直排列打開文件file1.txt和file.txt
[root@leoH ~]# vim -m -o file1.txt file.txt
窗口移動快捷鍵:ctrl+w
問題:
如果文件編輯過程中vi非正常關(guān)閉,那么重新打開vi test.txt是,系統(tǒng)會提示發(fā)現(xiàn)交換文件.test.txt.swp,可能原因是:
1.有另一個程序也在編輯同一個文件
2.上次編輯此文件是崩潰
解決辦法:
1.這時可以按o只讀打開,或R進行修復,或E直接編輯,或Q退出
2.手動刪除.test.txt.swp后,則不會再出現(xiàn)該提示。