Vim命令及含義大全

2021-10-02 17:47:18 字數 3542 閱讀 6196

編輯器是使用計算機的重要工具之一,在各種作業系統中,編輯器都是必不可少的部件。unix及其相似的ix作業系統系列中,為方便各種使用者在各個不同的環境中使用,提供了一系列的ex編輯器,包括 ex, edit,ed 和vi.其中ex,edit,ed都是行編輯器,現在已很少有人使用,unix提供他們的原因是考慮到滿足各種使用者特別是某些終端使用者的需要。值得慶幸的是,unix提供了全螢幕的vi編輯器,這使我們的工作輕鬆不少。不少dos使用者抱怨vi編輯器不象dos下的編輯器如edit那麼好用,這是因為vi考慮到各種使用者的需要,沒有使用某些通用的編輯鍵(在各個不同的終端機上他們的定義是不同的,在某些終端機上甚至沒有這些鍵)。而是採用狀態切換的方法,但這只是習慣的問題,一旦你熟練的使用上了vi你就會覺得它其實也很好用。

雖然vi採用了狀態切換的方法,但電腦的硬體及作業系統多種多樣,某些電腦的鍵盤上沒有特定的幾個功能鍵!那麼不就有某些功能不能用了?這個問題在 unix系統上也一樣,幾乎各大電腦廠商都有自己的unix 系統,而vi的操作方法也會隨之有點出入。這裡我們採用 pc的鍵盤來說明vi的操作,但在具體的環境中還要參考相應的資料,這一點是值得注意的。

進入vi在系統提示字元(如$、#)下敲入vi<檔名稱>,vi可以自動幫你載入所要編輯的檔案或是開啟乙個新檔案(如果該檔案不存在或缺少檔名)。進入 vi 後螢幕左方會出現波浪符號,凡是列首有該符號就代表此列目前是空的。

如上所述,vi存在兩種模式:指令模式和輸入模式。在指令模式下輸入的按鍵將做為指令來處理:如輸入a,vi即認為是在當前位置插入字元。而在輸入模式下,vi則把輸入的按鍵當作插入的字元來處理。指令模式切換到輸入模式只需鍵入相應的輸入命令即可(如a,a),而要從輸入模式切換到指令模式,則需在輸入模式下鍵入esc鍵,如果不曉得現在是處於什麼模式,可以多按幾次 [esc],系統如發出嗶嗶聲就表示已處於指令模式下了。

a :從游標所在位置後面開始新增資料,游標後的資料隨新增資料向後移動。

a: 從游標所在列最後面的地方開始新增資料。

插入 (insert)

i: 從游標所在位置前面開始插入資料,游標後的資料隨新增資料向後移動。

i :從游標所在列的第乙個非空白字元前面開始插入資料。

開始 (open)

o :在游標所在列下新增一列並進入輸入模式。

o: 在游標所在列上方新增一列並進入輸入模式。

x: 刪除游標所在字元。

dd :刪除游標所在的列。

r :修改游標所在字元,r 後接著要修正的字元。

r: 進入取替換狀態,新增文字會覆蓋原先文字,直到按 [esc] 回到指令模式下為止。

s: 刪除游標所在字元,並進入輸入模式。

s: 刪除游標所在的列,並進入輸入模式。

由於許多編輯工作是借由游標來定位,所以 vi 提供許多移動游標的方式,這個我們列

幾張簡表來說明(這些當然是指令模式下的指令):

指令    說明            功能鍵    

0 移動到游標所在列的最前面   [home]? 

$         ?  移動到游標所在列的最後面 [end]

[ctrl][d] 向下半頁                  ?  [pagedown]

[ctrl][u] 向上半頁?   

指令 說明

h 移動到視窗的第一列

m 移動到視窗的中間列

l 移動到視窗的最後列                

b 移動到下個字的第乙個字母

w 移動到上個字的第乙個字母          ? ? 

e 移動到下個字的最後乙個字母

^ 移動到游標所在列的第乙個非空白字元

指令 說明

n- 減號移動到上一列的第乙個非空白字元前面加上數字可以指定移動到以上 n 列   

n+ 加號移動到下一列的第乙個非空白字元前面加上數字可以指定移動到以下 n 列

ng 直接用數字 n 加上大寫 g 移動到第 n 列

指令 說明

fx往右移動到 x 字元上           

fx 往左移動到 x 字元上           ? 

tx 往右移動到 x 字元前? ? ? 

tx       往左移動到 x 字元前

;        配合 f&t 使用,重複一次? ? 

,? ?  配合 f&t 使用,反方向重複一次

/string 往右移動到有 string 的地方

?string 往左移動到有 string 的地方

n       ?  配合 /&? 使用,重複一次       

n       ?  配合 /&? 使用,反方向重複一次 

指令 說明 ? 備註

n(  

左括號移動到句子的最前面句子是以前面加上數字可以指定往前移動 n 個句子 ! . ? 三種符號來界定

n)?  右括號移動到下個句子的最前面前面加上數字可以指定往後移動 n 個句子 ! . ? 三種符號來界定

n 前面加上數字可以指定往前移動 n 個段落右括弧移動到下個段落的最前面前面加上數字可以指定往後移動 n 個段落 段落是以段落間的空白列界定

這些編輯指令非常有彈性,基本上可以說是由指令與範圍所構成。例如 dw 是由刪除指令 d 與範圍 w 所

組成,代表刪除乙個字 d(elete) w(ord) 。

指令列表如下:

d 刪除(delete)

y 複製(yank)

p 放置(put)

c 修改(change)

範圍可以是下列幾個:

e 游標所在位置到該字的最後乙個字母

w 游標所在位置到下個字的第乙個字母

b 游標所在位置到上個字的第乙個字母

$ 游標所在位置到該列的最後乙個字母

0 游標所在位置到該列的第乙個字母

) 游標所在位置到下個句子的第乙個字母

( 游標所在位置到該句子的第乙個字母

} 游標所在位置到該段落的最後乙個字母

{ 游標所在位置到該段落的第乙個字母

說實在的,組合這些指令來編輯檔案有一點點藝術氣息。不管怎麼樣,它們提供更多編輯文字的能力。值得

注意的一點是刪除與複製都會將指定範圍的內容放到暫存區裡,然後就可以用指令 p 貼到其它地方去,這

是 vi 用來處理區段拷貝與搬移的辦法。

某些 vi 版本,例如 linux 所用的 elvis 可以大幅簡化這一坨指令。如果稍微觀察一下這些編輯指令

就會發現問題其實是定範圍的方式有點雜,實際上只有四個指令罷了。指令 v 非常好用,只要按下 v 鍵,

游標所在的位置就會反白,然後就可以移動游標來設定範圍,接著再直接下指令進行編輯即可。

對於整列操作, vi 另外提供了更方便的編輯指令。前面曾經提到過刪除整列文字的指令 dd 就是其中乙個

;cc 可以修改整列文字;而 yy 則是複製整列文字;指令 d 則可以刪除游標到該列結束為止所有的文字。

檔案操作指令多以 : 開頭,這跟編輯指令有點區別。

:q 結束編輯(quit)

:q! 不存檔而要放棄編輯過的檔案。

:w 儲存檔案(write)其後可加所要存檔的檔名。

:wq 即存檔後離開。

zz 功能與 :wq 相同。

:x 與:wq相同

vim命令大全

vim命令大全 2011 08 04 15 31 這時vim最常用的命令大全,沒事常閱讀,最重要的事,有問題了,嘗試用這些東西去解決問題,而不是求助windows。vim是linux下命令列一款經典編輯器操作簡單功能強大,這是很多unix上元老級程式設計師的摯愛。我本地機器上一直使用的是vim ct...

vim命令大全

vim命令大全 2009 08 04 08 34 這時vim最常用的命令大全,沒事常閱讀,最重要的事,有問題了,嘗試用這些東西去解決問題,而不是求助windows。vim是linux下命令列一款經典編輯器操作簡單功能強大,這是很多unix上元老級程式設計師的摯愛。我本地機器上一直使用的是vim ct...

vim命令大全

以 和 開頭的命令都有歷史紀錄,可以首先鍵入 或 然後按上下箭頭來選擇某個歷史命令。在命令列視窗中輸入以下命令即可 vim 直接啟動vim vim filename 開啟vim並建立名為filename的檔案 開啟單個檔案 vim file 同時開啟多個檔案 vim file1 file2 file...