本手冊介紹了 vi/vim 編輯器的主要功能。為了便于查找,這裡一并給出了指令和它們的定制參數。在使用這個手冊之前,必須注意以下幾點:
●很多指令可以與重複因子一起使用(vi);
●vim(不是vi)把一個區域(region)定義為一個連續的文本塊,許多指令與文本塊有關;
一個區域可以用v定義,後面跟一個光标移動指令;
●用[Ctrl+l]組合鍵可以清除并重畫螢幕;
●:set指令用來定制編輯環境。
移動光标 指令 功能
h 光标左移
l(或空格鍵) 光标右移
k(或[Ctrl+p]) 光标上移
j(或[Ctrl+n]) 光标下移
[Ctrl+f] 向前翻頁
[Ctrl+b] 向後翻頁
[Ctrl+d] 向前翻半頁
[Ctrl+u] 向後翻半頁
1G 跳到檔案首
40G 跳到第40行
G 跳到檔案尾
[Ctrl+g] 顯示目前行号及檔案的百分比
:set number 顯示所有帶行号的行
在一行内移動光标
B、E和W指令的作用與b、e和w的作用一樣,隻是後者忽略了标點符号。 指令 功能
b 向後移動到單詞首
e 向前移動到單詞尾
w 向前移動到單詞首
0或| 移動到行首
30| 移動到第30列
^ 移動到本行的第一個單詞的首字元
$ 移動到行尾
插入文本 指令 功能
i 在光标的左側插入字元
20i-[Esc] 插入20個連字元
I 在行首插入字元
[Ctrl+v][Ctrl+b] 插入[Ctrl+b]字元
[Ctrl+v][Esc] 插入[Esc]字元
a 在光标的右側添加文本
A 在行尾添加文本
o 在目前行下面插入一空行
O 在目前行上面插入一空行
:set showmode 當vi處在輸入模式下時顯示提示資訊
:set sm 即時顯示配對的)或}
:set ts=n 把制表符設定為n(預設為8)
:set ai 下一行從前一行的縮進位置開始
删除和移動文本 指令 功能
x 删除光标所在的字元
6x 删除光标位置的字元以及右側的5個字元
X 删除前一個字元
dd 删除目前行
4dd 删除4行
64dd 删除64行
dw 删除一個單詞
d0 删除到行首
d$ 删除到行尾
d 删除一個區域(隻用于vim)
p 把被剪切的文本粘貼到下面(整行)或右側(部分行)
P 把被剪切的文本粘貼到上面(整行)或左側(部分行)
"add 把目前行粘貼到緩沖區a裡
"ap 把緩沖區a裡的内容粘貼到目前位置
J 把目前行于下一行合并為一行
xp 調換兩個字元的位置
修改文本 指令 功能
rch 把光标位置的字元替換為ch
R 替換光标右邊的文本
s 把光标所在的字元替換為任意個字元
S 替換整行内容
cw 修改一個單詞
c 修改區域裡的文本(vim)
~ 改變所掃描的或區域裡的字母的大小寫
!tr'[a-z]''[A-Z]' 把區域裡的字母轉換為大寫(vim)
!tr'[A-Z]''[a-z]' 把區域裡的字母轉換為小寫(vim)
複制文本 指令 功能
yy 複制目前行
6yy 複制六行
yw 複制單詞
y 複制區域(vim)
p 把複制的文本粘貼到右邊或下面
P 把複制的文本粘貼到左邊或上面
"ayy 把目前行複制到緩沖區a裡
"ap 恢複緩沖區a裡的内容
啟動編輯器 指令 功能
vi +100 foo 打開檔案foo并把光标定位在100行
vi +/pat foo 打開檔案foo并把光标定位在pat第一次出現的行
vi +foo 打開檔案foo,把光标定位在檔案尾
vi foo1 foo2 ... 打開檔案foo1,用n切換到foo2等
vi -r foo 把交換檔案裡的内容恢複到緩沖區裡
vi -R foo 一隻讀模式打開foo檔案
儲存與退出 指令 功能
:w 儲存檔案并繼續編輯
:w bar 同微軟Windows作業系統中的“另存為……”
:w! bar 同上,但是覆寫現存的檔案bar
:n1,n2w foo 把n1到n2之間的行儲存到檔案foo
:n1,n2w>>foo 把n1到n2之間的行添加到foo檔案尾
:.w foo 把目前行儲存到檔案foo
:$w foo 把最後一行儲存到檔案foo
:x 儲存并退出編輯器
:wq 同上
:q 如果檔案的内容沒有變化則退出編輯器
:q! 放棄修改并退出編輯器