vim 三種模式示意圖
Vim三種模式.png
1.命令行模式
用戶剛剛啟動 vi/vim羹与,便進(jìn)入了命令模式娩嚼。或者在任何時候腐泻,不管用戶處于何種模式决乎,只要按一下ESC鍵,即可使vi/vim進(jìn)入命令模式派桩。
進(jìn)入輸入模式
i: 插入光標(biāo)前一個字符
a: 插入光標(biāo)后一個字符
o: 向下新開一行,插入行首
I: 插入行首
A: 插入行未
O: 向上新開一行,插入行首
光標(biāo)移動
←/h: 左移
→/l: 右移
↓/j: 下移
↑/k: 上移
`例如向下移動30行, 可使用30↓/30j的組合按鍵`
n<Enter>: n為數(shù)字. 向下跳轉(zhuǎn)n行
nG: n為數(shù)字. 移動到指定行. 例如 20G 則會移動到這個檔案的第 20 行
gg: 光標(biāo)移動文件開頭
G: 光標(biāo)移動到文件末尾
復(fù)制粘貼刪除剪切
yy: 復(fù)制當(dāng)前行
nyy: n為數(shù)字. 復(fù)制光標(biāo)所在(包括)的向下 n 行构诚,例如 20dd 則是刪除 20 行
dd: 刪除(剪切)光標(biāo)所在行,n dd 刪除指定的行數(shù)
ndd: n為數(shù)字. 刪除(剪切)光標(biāo)所在(包括)的向下 n 行,例如 20dd 則是刪除 20 行
p: 在光標(biāo)所在位置下一行,粘貼
x: 刪除光標(biāo)后一個字符,相當(dāng)于 Del
X: 刪除光標(biāo)前一個字符,相當(dāng)于 Backspace
查找命令
/: 輸入想要查找的字符串
n: 下一個查找結(jié)果
N:上一個查找結(jié)果
其他常用命令
ZZ: 保存并退出
u: 撤銷上一步操作
Ctr+r: 反撤銷
.: 重復(fù)上一次操作的命令
>>: 文本行右移
<<: 文本行左移
v: 可視模式,方向鍵選中文本
可視模式可以配合 d铆惑、y范嘱、>>送膳、<<實(shí)現(xiàn)對文本塊的刪除、復(fù)制丑蛤、左右移
Ctrl+v: 可視塊模式, 上下選取文本
可視塊模式可以實(shí)現(xiàn)批量注釋:
選中需要注釋的多行的開頭, 再按Shift + i 進(jìn)入編輯模式然后輸入你想要在行首插入的字符叠聋,按ESC為每一行生效
批量刪除注釋:
選中要刪除的字符,按d即可刪除
2.文本輸入模式
在命令模式下輸入插入命令i受裹、附加命令a 碌补、打開命令o都可以進(jìn)入文本輸入模式。在該模式下棉饶,用戶輸入的任何字符都被vi/vim當(dāng)做文件內(nèi)容保存起來厦章,并將其顯示在屏幕上。在文本輸入過程中照藻,若想回到命令模式下袜啃,按鍵ESC即可。
代碼提示
Ctrl+n/p: 文本自動補(bǔ)全
3.末行模式
在命令模式下按下:(英文冒號)就進(jìn)入了末行模式幸缕。
按ESC鍵可隨時退出末行模式返回命令模式
保存命令
:wq/x: 保存并退出
:q!: 不保存, 強(qiáng)制退出
顯示取消行號
:set nu(set number):顯示行號
:set nonu:取消顯示行號
替換命令
:%s/abc/123/g 將所有行的abc替換成123
:1, 10s/abc/123/g 將第一行至第10行之間的abc替換成123
粘貼模式
如果從別的地方復(fù)制的文本直接在vim中粘貼可能會出現(xiàn)縮進(jìn)錯亂囊骤,可以通過粘貼模式解決
:set paste 進(jìn)入粘貼模式
:set nopaste 推出粘貼模式
4. 其他技巧
打開文件直接跳轉(zhuǎn)到某一行
打開文件test并跳轉(zhuǎn)到16行
vim test +16
跳轉(zhuǎn)到某一行
nG 跳轉(zhuǎn)到第n行
在vim中執(zhí)行shell命令
:!command
在vim中打開另一個文件
:sp file (split) 水平切分窗口
:vsp file (vsplit) 垂直切分窗口
Ctrl+w+方向鍵 切換到前/下/上/后一個窗格
Ctrl+w+h/j/k/l 同上
Ctrl+w+w 依次向后切換到下一個窗格中
5.常用配置
在用戶家目錄~
下添加.vimrc配置文件
set nu " 顯示行號
set ai " 自動縮進(jìn)
set tabstop=4 " 設(shè)置tab鍵為4個空格
set shiftwidth=4 " 自動縮進(jìn)時使用4個空格
set softtabstop=4 " 設(shè)置tab鍵設(shè)置的4個空格可配退格鍵一次刪除
set expandtab " 輸入tab時自動將其轉(zhuǎn)化為空格
set autoindent " 自動對齊