使用Vi編寫代碼時(shí),如果想脫離鼠標(biāo),需要使用一些命令快捷鍵,下面羅列了一些常用的并且容易記住的:
1. 命令模式下,移動(dòng)光標(biāo)或跳轉(zhuǎn)0到行首
^到行首第一個(gè)非空字符
2. 命令模式下,進(jìn)入插入模式$到行尾非空字符
fx向后移動(dòng)光標(biāo)到本行的x字符處
Fx向前移動(dòng)光標(biāo)到本行的x字符處
gg跳轉(zhuǎn)到文件頭部
G跳轉(zhuǎn)到文件尾部
nG、ngg或者:n跳轉(zhuǎn)到第n行
%跳到與當(dāng)前括弧([{}])相匹配的位置處
3.命令模式下,刪除文本i在當(dāng)前光標(biāo)位置左邊添加文本
I在當(dāng)前行首(第一個(gè)非空字符處)添加文本
a在當(dāng)前光標(biāo)位置的右邊添加文本
A在當(dāng)前行尾添加文本
o在當(dāng)前行的下面新建一行
O在當(dāng)前行的上面新建一行
4.命令模式下,復(fù)制,粘貼x刪除當(dāng)前光標(biāo)處字符
nx刪除從當(dāng)前光標(biāo)處字符開始算起的n個(gè)字符
cw刪除當(dāng)前光標(biāo)處字符,并且進(jìn)入插入狀態(tài)
d/xxx刪除從當(dāng)前光標(biāo)處到xxx字符的所有文本
dtxxx刪除從當(dāng)前光標(biāo)處到本行的xxx處
dw刪除從當(dāng)前光標(biāo)到當(dāng)前Word尾部
dd刪除當(dāng)前行
ndd刪除從當(dāng)前行開始的n行
d}刪除當(dāng)前行直到下一個(gè)空行
d{刪除當(dāng)前行直到前一個(gè)空行
d$刪除從當(dāng)前光標(biāo)處字符直到行尾
:n,md刪除n到m行
:%s/^[/t ]*//g刪除文件內(nèi)所有行行首的空格和tab
:%s/[/t ]*$//g刪除文件內(nèi)所有行行尾的空格和tab
刪除多行可以分三步:1. mz標(biāo)記某一行;2. 光標(biāo)移動(dòng)到目標(biāo)結(jié)束行;3. d'z
5.命令模式下,替換p粘貼內(nèi)容到當(dāng)前光標(biāo)后
P粘貼內(nèi)容到當(dāng)前光標(biāo)前
條目3中很多命令將d換為y即可,如復(fù)制多行:1. mz標(biāo)記某一行;2. 光標(biāo)移動(dòng)到目標(biāo)結(jié)束行;3. y'z
:s/old/new/g替換當(dāng)前行內(nèi)所有old字符串為new6.命令模式下,其他編輯命令&重復(fù)上一次替換
:%s/old/new/g替換當(dāng)前文件內(nèi)所有old字符串為new
:n,ms/old/new/g替換從行n到行m內(nèi)所有old字符串為new
ZZ = :wq 保存并退出
7.其他命令u撤銷上一個(gè)編輯操作(undo)
ctrl+r重復(fù)上一個(gè)編輯操作(redo)
J合并當(dāng)前行跟下一行
塊編輯:ctr+v進(jìn)入塊編輯,從當(dāng)前行往下移動(dòng)光標(biāo)直到目標(biāo)結(jié)束行,然后按大寫的I進(jìn)入插入狀態(tài),輸入xxx,然后按esc后,在所有的塊內(nèi)行首均會(huì)加上xxx
/xxx向下搜索xxx
?xxx向上搜索xxx
n跳轉(zhuǎn)到下一個(gè)搜索位置
N跳轉(zhuǎn)到上一個(gè)跳轉(zhuǎn)位置
ZZ保存當(dāng)前文件并退出,等同于:wq
ctrl+[切換回命令模式,等同于esc
插入模式下,自動(dòng)補(bǔ)全:ctrl+p或ctrl+n
tag跳轉(zhuǎn):ctrl+]跳轉(zhuǎn)到符號(hào)定義處,T調(diào)回到原來(lái)位置
新聞熱點(diǎn)
疑難解答
圖片精選