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