表7-22指令 | 說明 |
普通模式:移動光标的操作 | |
G或(shift+g) | 将光标移動到檔案的最後一行 |
gg | 将光标移動到檔案的第一行,等價于1gg或1G |
數字0,将光标從所在位置移動到目前行的開頭 | |
$ | 從光标所在位置将光标移動到目前行的結尾 |
n<Enter> | n為數字,<Enter>為Enter鍵,将光标從目前位置向下移動n行。 |
ngg | n為數字,移動到檔案的第n行,如11gg可移動到第11行,可配合“:set nu”檢視,同nG |
H | 光标移動到目前視窗最上方的那一行 |
M | 光标移動到目前視窗中間的那一行 |
L | 光标移動到目前視窗最下方的那一行 |
h或(←) | 光标向左移動一個字元 |
j或(↓) | 光标向下移動一個字元 |
k或(↑) | 光标向上移動一個字元 |
l或(→) | 光标向右移動一個字元 |
普通模式:搜尋與替換操作 | |
/oldboy | 從光标位置開始,向下尋找名為oldboy的字元串 |
?oldboy | 從光标位置開始,向上尋找名為oldboy的字元串 |
n | 從光标位置開始,向下重複前一個搜尋的的動作 |
N | 從光标位置開始,向上重複前一個搜尋的的動作 |
:g/A/s//B/g | 把符合A的内容全部替換為B,斜線為分隔符,可以用@、#等替代 |
:%s/A/B/g | 把符合A的内容全部替換為B,斜線為分隔符,可以用@、#等替代 |
:n1,n2s/A/B/gc | n1、n2為數字,在第n1行和n2行間尋找A,用B替換 |
普通模式:複制、粘貼、删除等操作 | |
yy | 複制光标所在的目前行 |
nyy | n為數字,複制光标開始向下共n行 |
p/P | p将已複制的資料粘貼到光标的下一行,P則為粘貼到光标的上一行 |
dd | 删除光标所在的目前行 |
ndd | n為數字,删除從光标開始向下共n行 |
u | 恢複(復原)前一個執行過操作 |
. | 點号。重複前一個執行過的動作 |
x | 向後删除字元 |
X | 向前删除字元 |
d1G | 删除目前行至第一行 |
dG | 删除目前行至最後一行 |
d0 | 删除目前光标文本至行首 |
d$ | 删除目前光标文本至行尾 |
進入編輯模式指令 | |
i | 在目前光标所在處插入文字 |
a | 在目前光标所在下一個字元處插入文字 |
I | 在目前所在行的行首第一個非空格符處開始插入文字,和A相反 |
A | 在目前所在行的行尾最後一個字元處開始插入文字,和I相反 |
O | 在目前所在行的上一行處插入新的一行 |
o | 在目前所在行的下一行處插入新的一行 |
Esc | 退出編輯模式,回到指令模式中 |
指令行模式 | |
:wq | 退出并儲存 |
:wq! | 退出并強制儲存,“!”為強制的意思 |
:q! | 強制退出,不儲存 |
:n1,n2 w filename | n1、n2為數字,将n1行到n2行的内容儲存成filename這個檔案 |
:n1,n2 co n3 | n1、n2為數字,将n1行到n2行的内容拷貝到n3位置下 |
:n1,n2 m n3 | n1、n2為數字,将n1行到n2行的内容挪至n3位置下 |
:!command | 暫時離開vi到指令行模式下執行command的顯示結果!例如 :! ls /etc |
:set nu | 顯示行号 |
:set nonu | 與set nu相反,取消行号 |
:vs filename | 垂直分屏顯示,同時顯示目前檔案和filename對應檔案的内容 |
:sp filename | 水準分屏顯示,同時顯示目前檔案和filename對應檔案的内容 |
I + # + Esc | 在可視塊模式下(Ctrl + v), 一次性注釋所選的多行,取消注釋可用:n1,n2s/#/ /gc[t1] ,這裡操作是一個通用的方法,#号可以換成别的操作,例如tab鍵,這樣就是批量縮進 |
Del | 在可視塊模式下(Ctrl + v),一次性删除所選内容 |
r | 在可視塊模式下(Ctrl + v),一次性替換所選内容 |
轉載于:https://www.cnblogs.com/panshihao/p/9674909.html