第一部份:一般模式可用的按鈕說明,光标移動、複制貼上、搜尋取代等
移動光标的方法
h 或 (←) 光标向左移動一個字元
j 或 (↓) 光标向下移動一個字元
k 或 (↑) 光标向上移動一個字元
l 或 (→) 光标向右移動一個字元
如果想要進行多次移動的話,例如向下移動 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)後,按下動作即可!
[Ctrl]+ [f] 螢幕『向下』移動一頁,相當于 [Page Down]按鍵 (常用)
[Ctrl]+ [b] 螢幕『向上』移動一頁,相當于 [Page Up] 按鍵 (常用)
[Ctrl]+ [d] 螢幕『向下』移動半頁
[Ctrl]+ [u] 螢幕『向上』移動半頁
+ 光标移動到非空格符的下一列
- 光标移動到非空格符的上一列
n<space> 按下數字後再按空格鍵,光标會向右移動這一行的 n 個字元。
0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[End] 移動到這一行的最後面字元處(常用)
H 光标移動到這個螢幕的最上方那一行的第一個字元
M 光标移動到這個螢幕的中央那一行的第一個字元
L 光标移動到這個螢幕的最下方那一行的第一個字元
G 移動到這個檔案的最後一行(常用)
nG 移動到這個檔案的第 n 行。(可配合 :set nu)
gg 移動到這個檔案的第一行,相當于 1G 啊!(常用)
n<Enter> 光标向下移動 n 行(常用)
搜尋與取代
/word 向光标之下尋找一個名稱為word 的字元串。(常用)
?word 向光标之上尋找一個字元串名稱為 word 的字元串。
n 英文按鍵。代表『重複前一個搜尋的動作』。
N 英文按鍵。與n剛好相反,『反向』進行前一個搜尋動作。
使用 /word 配合 n 及 N 是非常有幫劣的!可以讓你重複的找到一些你搜尋的關鍵詞!
:n1,n2s/word1/word2/g 在第 n1與n2 行之間尋找word1這個字元串,并取代為 word2
:1,$s/word1/word2/g 從第一行到最後一行尋找word1字元串,并取代為word2
:1,$s/word1/word2/gc 從第一行到最後一行尋找word1字元串,并取代為 word2 !且在取代前顯示提示字元給使用者确認(confirm) 是否需要取代!(常用)
删除、複制不貼上
x, X 在一行字當中,x 為向後删除一個字元 (相當于 [del] 按鍵), X 為向前删除一個字元(相當于[backspace] 亦即是倒退鍵) (常用)
nx 連續向後删除n個字元。
dd 删除遊标所在的那一整列(常用)
ndd 删除光标所在的向下 n 列。(常用)
d1G 删除光标所在到第一行的所有資料
dG 删除光标所在到最後一行的所有資料
d$ 删除遊标所在處,到該行的最後一個字元
d0 删除遊标所在處,到該行的最前面一個字元
yy 複制遊标所在的那一行(常用)
nyy 複制光标所在的向下 n 列(常用)
y1G 複制光标所在列到第一列的所有資料
yG 複制光标所在列到最後一列的所有資料
y0 複制光标所在的那個字元到該行行首的所有資料
y$ 複制光标所在的那個字元到該行行尾的所有資料
p, P p 為将已複制的資料在光标下一行貼上,P 則為貼在遊标上一行
J 将光标所在列與下一列的資料結合成同一列
c 重複删除多個資料。向下删除 10 行,[10cj]
u 複原前一個動作。(常用)
[Ctrl]+r 重做上一個動作。(常用)
. 小數點!意思是重複前一個動作。如果你想要重複删除、重複貼上等等動作,按下小數點『.』就好了! (常用)
第二部份:一般模式切換到編輯模式的可用的按鈕說明
進入插入或取代的編輯模式
i, I 進入插入模式(Insert mode):i為『從目前光标所在處插入』,I 為『在目前所在行的第一個非空格符處開始插入』。(常用)
a, A 進入插入模式(Insert mode):a為『從目前光标所在的下一個字元處開始插入』,A 為『從光标所在行的最後一個字元處開始插入』。(常用)
o, O 進入插入模式(Insert mode):o為『在目前光标所在的下一行處插入新的一行』,O 為在目前光标所在處的上一行插入新的一行!(常用)
r, R 進入取代模式(Replace mode):r隻會取代光标所在的那一個字元一次;R會一直取代光标所在的文字,直到按下 ESC 為止;(常用)
[Esc] 退出編輯模式,回到一般模式中(常用)
第三部份:一般模式切換到指令列模式的可用的按鈕說明
指令列的儲存、離開等指令
:w 将編輯的資料寫入硬碟檔案中(常用)
:w! 若檔案屬性為『隻讀』時,強制寫入該檔案
:q 離開 vi (常用)
:q! 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案
:wq 儲存後離開
:wq! 強制儲存後離開 (常用)
ZZ 若檔案沒有更動,則不儲存離開,若檔案已被更動過,則儲存後離開
:w [filename] 将編輯的資料儲存成另一個檔案(類似另存新檔)
:r [filename] 在編輯的資料中,讀入另一個檔案的資料。亦即将『filename』這個檔案内容加到遊标所在行後面
:n1,n2 w[filename] 将 n1到n2的内容儲存成filename這個檔案。
:! command 暫時離開 vi 到指令列模式下執行 command 的顯示結果
vim 環境的變更
:set nu 顯示行号,設定之後,會在每一行的字首顯示該行的行号
:set nonu 與set nu相反,為取消行号
:set hlsearch 設定高亮