天天看點

[總結]vim編輯器常用指令

第一部份:一般模式可用的按鈕說明,光标移動、複制貼上、搜尋取代等

移動光标的方法

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     設定高亮