vim 使用
收集整理:
wilbur lang
vim 簡介
vim 是 unix 世界裡極為普遍的全螢幕文書編輯器,幾乎可以說任何一台 unix 機器都會提供這套軟體。熟悉 dos 下的文書處理後,也許會感到 vim 並不好用;unix 上也已經發展出許多更新、更好用的文書編輯器,但是並不一定每一台 unix 機器上都會安裝這些額外的軟體。所以,學習 vim 的基本操作還是有好處,讓你在各個不同的機器上得心應手。
vim 基本觀念
unix 提供一系列的 ex 編輯器,包括 ex, edit 和 vim 。相對於全螢幕編輯器,現在可能很難想像如何使用 ex, edit 這種行列編輯器(有人用過 dos 3.3 版以前所附的 edlin 嗎?)。 vim 的原意是 "vi improved",它是乙個所見所得的編輯程式,也就是說可以立刻看到操作結果。
也由於 vim 是全螢幕編輯器,所以它必須控制整個終端螢幕**該顯示些什麼。而終端的種類有許多種,特性又不盡相同,所以 vim 有必要知道現在所使用的是哪一種終端。這是由 term 這個環境變數來設定,設定環境變數方面請檢視所使用 shell 的說明。(除非執行 vim 的時候回應 unknow terminal type ,否則可以不用設定。)
只要簡單的執行 vim 就可以進入 vim 的編輯環境。在實際操作之前先對它有個概略的了解會比較好。vim 有兩種模式,輸入模式以及指令模式。輸入模式即是用來輸入文字資料,而指令模式則是用來下達一些編排檔案、存檔、以及離開 vim 等等的操作指令。當執行 vim 後,會先進入指令模式,此時輸入的任何字元都視為指令。
進入與離開
要進入 vim 可以直接在系統提示下鍵入 vim <檔名稱>,vim 可以自動幫你載入所要編輯的檔案或是開啟乙個新檔案。進入 vim 後螢幕左方會出現波浪符號,凡是行首有該符號就代表此列目前是空的。要離開 vim 可以在指令模式下鍵入 :q, :wq 指令則是存檔後再離開(注意冒號)。要切換到指令模式下則是用 [esc] 鍵,如果不曉得現在是處於什麼模式, 可以多按幾次 [esc],系統會發出嗶嗶聲以確定進入指令模式。
vim 輸入模式
a 從游標所在位置後面開始新增資料,游標後的資料隨新增資料向後移動。
a 從游標所在列最後面的地方開始新增資料。
插入 (insert)
i 從游標所在位置前面開始插入資料,游標後的資料隨新增資料向後移動。
i 從游標所在列的第乙個非空白字元前面開始插入資料。
開始 (open)
o 在游標所在列下新增一列並進入輸入模式。
o 在游標所在列上方新增一列並進入輸入模式。
也許文字敘述看起來有點繁雜,但是只要實際操作一下馬上可以了解這些操作方式。實務很重要,尤其是電腦方面的東西隨時可以嘗試及驗證結果。極力建議實際去使用它而不要只是猛 k 檔案,才有事半功倍的效用。(注:此段為廢話。)
vim 基本編輯
配合一般鍵盤上的功能鍵,像是方向鍵、[insert] 、[delete] 等等,現在你應該已經可以利用 vim 來處理文字資料了。當然 vim 還提供其他許許多多功能讓文字的處理更形方便,有興趣的看倌請繼續。
在繼續下去之前先來點 bcc 吧。電腦有許多廠牌,不同的硬體及作業系統。pc 也不是僅僅只有 ibm pc 及其相容品而已。事實上,包括鍵盤,終端機等等往往都有不同的規格。這代表什麼?
在文書編輯軟體上會遇這樣的問題,某些電腦的鍵盤上沒有特定的幾個功能鍵!那麼不就有某些功能不能用了?這個問題在 unix 系統上也一樣,幾乎各大電腦廠商都有自己的 unix 系統,而 vim 的操作方法也會隨之有點出入。我們固然可以用 pc 的鍵盤來說明 vim 的操作,但是還是得提一下這個問題。
刪除與修改
何謂編輯?在這裡我們認為是文字的新增修改以及刪除,甚至包括文字區塊的搬移、複製等等。這裡先介紹 vim 的如何做刪除與修改。(注意:在 vim 的原始觀念裡,輸入跟編輯是兩碼子事。編輯是在指令模式下操作的,先利用指令移動游標來定位要進行編輯的地方,然後才下指令做編輯。)
x 刪除游標所在字元。
dd 刪除游標所在的列。
r 修改游標所在字元,r 後接著要修正的字元。
r 進入取代狀態,新增資料會覆蓋原先資料,直到按 [esc] 回到指令模式下為止。
s 刪除游標所在字元,並進入輸入模式。
s 刪除游標所在的列,並進入輸入模式。
其實呢,在 pc 上根本沒有這麼麻煩!輸入跟編輯都可以在輸入模式下完成。例如要刪除字元,直接按 [delete] 不就得了。而插入狀態與取代狀態可以直接用 [insert] 切換,犯不著用什麼指令模式的編輯指令。不過就如前面所提到的,這些指令幾乎是每台終端機都能用,而不是僅僅在 pc 上。
在指令模式下移動游標的基本指令是 h, j, k, l 。想來各位現在也應該能猜到只要直接用 pc 的方向鍵就可以了,而且無論在指令模式或輸入模式下都可以。多容易不是。
當然 pc 鍵盤也有不足之處。有個很好用的指令 u 可以恢復被刪除的資料,而 u 指令則可以恢復游標所在列的所有改變。這與某些電腦上的 [undo] 按鍵功能相同。
vim 高階應用
相信現在對於 vim 應該已經有相當的認識。處理文字也不會有什麼麻煩才對。如果有興趣善用 vim 的其它功能進一步簡化操作過程,不妨繼續看下去。
移動游標
指令說明
功能鍵0
移動到游標所在列的最前面
home
$移動到游標所在列的最後面
end^d
向下半頁
^fpagedown
^u向上半頁
^bpageup
指令說明
h移動到視窗的第一列
m移動到視窗的中間列
l移動到視窗的最後列
b移動到下個字的第乙個字母
w移動到上個字的第乙個字母
e移動到下個字的最後乙個字母
^移動到游標所在列的第乙個非空白字元
指令說明
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 個段落
不要嘗試背誦這些指令,否則後果自行負責。它們看起來又多又雜亂,事實上這是文字敘述本身的障礙。再強調一次,實際去使用它只要幾次就可以不經大腦直接下達這些奇奇怪怪的指令,遠比死記活背搞得模模糊糊強多了。(注:若真的不經大腦而誤刪資料與我無關。另,此段為廢話。)
高階編輯指令
這些編輯指令非常有彈性,基本上可以說是由指令與範圍所構成。例如 dw 是由刪除指令 d 與範圍 w 所組成,代表刪除乙個字 d(elete) w(ord) 。
指令列表如下:
d 刪除(delete)
y 複製(yank)
p 放置(put)
c 修改(change)
範圍可以是下列幾個:
e 游標所在位置到該字的最後乙個字母
w 游標所在位置到下個字的第乙個字母
b 游標所在位置到上個字的第乙個字母
$ 游標所在位置到該列的最後乙個字母
0 游標所在位置到該列的第乙個字母
) 游標所在位置到下個句子的第乙個字母
( 游標所在位置到該句子的第乙個字母
} 游標所在位置到該段落的最後乙個字母
{ 游標所在位置到該段落的第乙個字母
說實在的,組合這些指令來編輯檔案有一點點藝術氣息。不管怎麼樣,它們提供更多編輯文字的能力。值得注意的一點是刪除與複製都會將指定範圍的內容放到暫存區裡,然後就可以用指令 p 貼到其它地方去,這是 vim 用來處理區段拷貝與搬移的辦法。
某些 vim 版本,例如 linux 所用的 elvims 可以大幅簡化這一坨指令。如果稍微觀察一下這些編輯指令就會發現問題其實是定範圍的方式有點雜,實際上只有四個指令罷了。指令 v 非常好用,只要按下 v 鍵,游標所在的位置就會反白,然後就可以移動游標來設定範圍,接著再直接下指令進行編輯即可。
對於整列操作, vim 另外提供了更方便的編輯指令。前面曾經提到過刪除整列文字的指令 dd 就是其中乙個;cc 可以修改整列文字;而 yy 則是複製整列文字;指令 d 則可以刪除游標到該列結束為止所有的文字。
檔案指令
檔案指令多以 : 開頭,跟編輯指令有點區別。例如前面提到結束編輯的指令就是 :q。現在就簡單說明一下作為本篇故事的結尾:
:q 結束編輯(quit)
如果不想存檔而要放棄編輯過的檔案則用 :q! 強制離開。
:w 存檔(write)
其後可加所要存檔的檔名。
可以將檔案指令合在一起,例如 :wq 即存檔後離開。
zz 功能與 :wq 相同。
另外值得一提的是 vim 的部份存檔功能。可以用 :n,mw filename 將第 n 行到第 m 行的文字存放的所指定的 filename 裡去哩。時代在變,世界在變, vim 也在變,不過大致上就這樣。好了,但願從此以後王子跟公主過著幸福快樂的生活。
:wq
Vim使用介紹
可視模式 替換模式 功能游標在當前位置進入插入模式 游標跳到行首並進入插入模式 游標後退一格並進入插入模式 游標退到行尾並進入插入模式 在游標所在行下新起一行並進入插入模式 在游標所在行上新起一行並進入插入模式 刪除游標所在字元並進入插入模式 刪除游標所在行並進入插入模式 功能如果未對檔案做改動則退...
VIM簡單使用介紹
1 一般指令模式 command mode 以 vim後加上檔案路徑名字就可以開啟乙個檔案就直接進入一般指令模式了 這是預設的模式,也簡稱為一般模式 在這個模式中,你可以使用 上下左右 按鍵來移動游標,你可以使用 刪除 貼上 等方式來編輯檔案內容,也可以使用 複製 貼上 來處理你的檔案資料。2 編輯...
配置vim介紹
1 安裝vim sudo apt get install vim full 2 配置檔案的位置 在目錄 etc vim下面,有個名為vimrc的檔案,這是系統中公共的vim配置檔案,對所有使用者都有效。3 設定語法高亮顯示 1 開啟vimrc,新增以下語句來使得語法高亮顯示 syntax on 2 ...