-
基本模式
-
普通模式
-
插入模式
-
可視模式
-
選擇模式
-
命令行模式
-
Ex模式
-
-
派生模式
-
操作符等待模式
-
插入普通模式
-
插入可視模式
-
插入選擇模式
-
替換模式
-
h:左
j:下
k:上
l:右
2.插入模式和退出VIM的方法
ls:顯示當前路徑下的文件
vi+文件名:打開文件,默認進入普通模式,可以使用1中所述的方向鍵,此時按i,即進入插入模式(左下角可以看見INSERT字樣)。
退出插入模式:按esc,退回普通模式。
進入插入模式的各種方法:
含義 | |
---|---|
i | 在光標的前面進入插入模式 |
I | 在光標所在行的行首進入插入模式 |
a | 在光標的后面進入插入模式 |
A | 在光標所在行的行尾進入插入模式 |
o | 在光標所在行的下方插入空行并進入插入模式 |
O | 在光標所在行的上方插入空行并進入插入模式 |
s | 刪除光標指定的字符并進入插入模式 |
S | 將光標所在行清除并進入插入模式 |
:q!:強制退出,不修改
:wq:保存退出
3.刪除命令、數字的奧義、撤銷和恢復命令
-
刪除命令
1.在普通模式下,刪除單一字符可以用x命令
2.刪除更多字符可以使用d命令(delete),使用方法:d+motion
含義 | |
---|---|
0 | 將光標定位到行首的位置 |
^ | 同上 |
$ | 將光標移動到行位的位置 |
b | 將光標定位到光標所在單詞的起始處 |
e | 將光標定位到光標所在單詞的結尾處 |
w | 將光標定位到下一個單詞的起始處 |
gg | 將光標定位到文件的開頭 |
G | 將光標定位到文件的末尾 |
?
含義 | |
---|---|
d0 | 刪除光標從當前位置(不包含)到該行行首的所有字符 |
d^ | 同上 |
d$ | 刪除從光標當前位置(不包含)到該行行尾的所有字符 |
db | 刪除從光標當前位置(不包含)到單詞起始處的所有字符 |
de | 刪除從光標當前位置(包含)到單詞結尾處的所有字符 |
dw | 刪除從當前位置(包含)到下一個單詞起始處的所有字符 |
dh | 刪除光標前邊一個字符 |
dl | 刪除光標指定的字符 |
dj | 刪除光標所在行及下一行的所有字符 |
dk | 刪除光標所在行以及上一行的所有字符 |
dd | 刪除光標所在行的所有字符 |
dgg | 刪除光標所在行到文件開頭的所有字符 |
dG | 刪除光標所在行到文件末尾的所有字符 |
-
1.數字+motion:重復多個motion
2.d+數字+motion:刪除多個motion范圍
-
撤銷
1.u表示撤銷最后一次修改
2.U表示撤銷對整行的修改
3.commend+r快捷鍵可以恢復撤銷的內容
4.所有的刪除操作并不是真的刪除,而是存放在VIM的一個緩存區中,相當于剪切功能
-
粘貼命令
-
在VIM下使用刪除命令,并不會直接將你的東西刪掉,而是放到VIM的寄存器中。
-
使用p命令可以將最后一次刪除的內容粘貼到光標之后(大寫的P可以粘貼到光標之前)
-
注意:
-
如果粘貼的是整行,p命令將在光標下一行粘貼
-
如果粘貼的是局部字符串,p命令將在光標后開始粘貼
-
-
-
拷貝命令
-
VIM用y(yank)命令實現拷貝:y[數字] motion
-
yy:拷貝當前行
-
-
-
替換命令
-
r命令用于替換光標所在的字符,做法是先將光標移動到需要替換的字符出,按一下r鍵,然后輸入新的字符
-
在鍵入r命令前輸入數字,表示從光標處開始,將多個字符統一替換為新字符
-
R命令直接進入替換模式
-
-
修改命令
-
修改和替換是不一樣的,修改會進入插入模式,替換不會進入插入模式
-
VIM用c命令實現修改:c[數字]motion
-
-
control+g:顯示文件信息
-
跳轉
-
行號+G
-
:行號
-
-
定位括號
-
按下%鍵,快速找到另一半括號
-
-
縮進(按C語言風格縮進)
-
>>右縮進,<<左縮進,數字+縮進符可以實現多行縮進
-
按下v進入可視模式,按hjkl選擇行,然后按下>
-
-
搜索命令
? | /目標 | ?目標 |
---|---|---|
搜索方向 | 從光標開始向后 | 從光標開始向前 |
n | 向后搜索下一個 | 向前搜索下一個 |
N | 向前搜索下一個 | 向后搜索下一個 |
-
-
-
十個特殊的字符
-
. * [ ] ^ % / ? ~ $ 不能直接搜索這十個字符,要加\轉義
-
-
替換命令
-
:s/old/new
-
表示將光標所在行的第一個old替換為new
-
-
:s/old/new/g
-
表示將光標所在行的所有old替換為new
-
-
:%s/old/new/g
-
表示將整個文件中的所有old替換為new
-
-
:%s/old/new/gc
-
同上,但會在每次替換之前先請示
-
-
:5,13s/old/new/g
-
表示替換第5行到第13行中所有的old為new
-
-
-
執行shell命令
-
:!
-
-
文件另存為
-
:w 文件名
-
-
局部內容另存為
-
1.進入可視模式
-
2.:w 文件名
-
-
合并文件
-
:r 文件名
-
-
打開多個文件
-
-o 垂直并排
-
-O 水平并排
-
用control+w+w將光標切換到下一個文件
-
對于垂直并排的文件:使用control+w+上下方向
-
對于水平并排的文件:使用control+w+左右方向
-
:qa 退出全部文件
-
:wqa 保存全部修改
-
:qa! 忽略全部修改
-