大家來學VIM(乙個歷久彌新的編輯器) 一

2021-09-01 07:36:30 字數 3962 閱讀 4982

因為最近在學vim,所以轉過來。裡面是繁體,好多都是台灣的計算機術語,看的時候有點怪異,不過還是不影響閱讀的。

前言

鑑於仍有許多人還沒找到順手的編輯器,而許多想學 vi 的人又覺得無從下手,因此在此提出一些個人的心得,希望能對這些朋友有點幫助。或許也減少一點 faq 吧!

真要深入的話,大多數的前輩都認為 vi 比 emacs(xemcas) 還難學。但誰又真的需要熟悉編輯器的所有功能呢?你大可以邊用邊學啊!需要用到的先學,其它的就放一邊,只要能善用一些常用到的功能,又何必要那麼深入呢?而且您在使用當中經常會發現一些新功能,這又會馬上讓您給賺到了。

為什麼選vim?

最最重要的原因是可以正確處理中文!其它如 elvis,vile,nvi 在中文方面都會有問題。另外就是許多作業系統都有 vim 可用。當然如果您不需要中文支援的話,也建議使用 elvis。vile 則有 emacs 的味道,而 nvi 大概是最忠於原味的了!至於原始 vi 的書已有中文翻譯(o'reilly),各位到大一點的書局翻翻就有了。所以選定 vim 做物件,兼述及 elvis,至少她不「排斥」中文。

vim 代表 vi improved。 elvis 可直接讀 html(可用來上網,但只有文字),binary,manpage 及 tex(latex)(不是只顯示程式碼喔!)檔,和 xa+cv 配合也可以用中文,但不能真正處理就是了!

vim 也不是真的能完全支援中文啦!有些細部的功能還是沒法度。大概 6.0 版的時候會更好!不過平常一般的編輯動作是沒問題。

另乙個原因是,vim 是慈善軟體(charityware),如有贊助或評比得獎(前不久剛得過),所得皆救助烏干達孤兒,有點年紀的大概還記得"we are the world" 這首歌吧!全球的藝人共同合唱的,就是救助這些孤兒(應該沒記錯吧!)。您要使用當然是免費,您要捐款贊助當然是不勉強啦!但如果有評比有獎金可拿的,您去投她一票就是功德無量了。

另外 vim 的規則表示式(regular express)頗完整,您也可借這個機會學 regexp,因為您在 sed,awk,perl,less,grep...中也是要用到,早點會 regexp 您生活在 linux(unix)的世界會更美好。學了 regexp 您會有點看不起 windows 系統中的尋找功能的。

由於是慈善軟體,廣結善緣,因此連中文繁體都支援,不簡單。但也因此最近的版本有點肥,但又不會太肥(比 xemacs 好多了啦!)。這麼可愛的軟體,能不用她嗎?

如何抓vim(elvis)?

找個自己中意的 mirro 站抓。或許也順便抓 win32 的可執行

檔回來在 windows 系統中使用。別忘了 runtime 檔也要抓,

否則會無法找到需要的檔案來執行。

也可試試 elvis(當然是免費的)。

cle 的使用者也可以到:

抓最新版來安裝,省時省力,而且還把必要的中文設定都弄好。

目前最新的版本,vim 是 5.6,elvis 是 2.1-4。

編譯安裝

只講重點,避免囉嗦!

vim:

1. configure 時加上:

--enable-multibyte

--enable-xim 如果您使用 xcin2.3 的話,就不必了

--enable-fontset

--enable-gui=gtk

gtk+ 最好是 1.2.3 以上的版本,1.2.1 也是將就可以啦

!大家都用 gtk+ 了,您不會想編 athena 或

motif(lesstif)吧!而且後兩個版本的 gui 就沒有漂亮的

icon 了(但有的人就是討厭這些無用的 icon)。

2. ~/.vimrc 加入:

set fileencoding=taiwan

set guifontset=英文本型,中文字型

設了 guifontset 就不能設 guifont 否則會優先使用

guifont,這樣就找不到中文字型了!console 下或 xterm

下的話,就看您用什麼字型就顯示什麼字型,和

guifontset 無關。

英文本型要用固定字,建議使用危卵的 andale mono 這個字型,包您滿意,可去危卵抓,免費的。我個人是使用 180 的 andale 字,配上 220 的中文字,絕配(1024x768)!哦!不要告訴我,您的 x server 還不能支援 ttf。

windows 中文版無需設 guifontset,只要設 guifont 即可。

3. 使用 xcin2.3 的話還是得配合 xa+cv 主要是輸入的問題。

使用 xcin2.5 的話就不必 xa+cv 了,但您得另外設 xim,

請進入 vim 後 :help xim。

4. locale 要設成 zh_tw.big5,意思就是您的系統的 i18n

支援不能太差,我是使用 gvim-chinese shell script

來呼叫 gvim。

#!/bin/sh

# gvim-chinese

# unset ld_preload 如果您使用 xcin2.5x 的話

export lc_all=zh_tw.big5

gvim "$@"

elvis: elvis 沒什麼好說的,反正是靠 xa+cv 來顯示及輸入中文 。至於其他外觀調整,就請 man elvis。

勤前教育

vim 的模式可有六種,為免初學的人搞混,仍依一般的分類分成三種:

1. normal mode(common mode,以下簡稱 c-mode):

您一進入 vim 就是處於 c-mode,只能下按鍵指令,不能輸入文字。這些指令可能是游標移動的指令,也可能是編輯指令或尋找替換指令。

2. insert mode(i-mode):

按 i 就會進入 i-mode,此時才可以鍵入文字,寫您的文章,按 esc 又會回到 c-mode。

3. ed mode(common-line mode,e-mode):

按冒號:(別忘了 shift 鍵)就會進入 e-mode,左下角會有乙個冒號:出現可下 ed 指令。也是按 esc 回 c-mode。反正正常狀態都是處於 c-mode,這樣才不會把您辛苦打字的文章給隨便搞亂掉。

其它的模式就碰到時再說明了!

基本教練:step by step

1. 由命令列來開檔:

vim test.txt 或 gvim test,txt 或 gvim-chinese test.txt 如果您的系統 vi 是 vim 的鏈結檔話,就可以直接用 vi test.txt。以下就直接用 vim 代表 vi,gvim,elvis 因操作是一樣的有不同的地方會加註說明。

2. 先進入 vim 後再開檔:

進入 vim 後,使用冒號命令 :e test.txt,就可以編輯 test.txt 這個檔。1. 及 2. 這兩個開檔法,如果 test.txt 不存在的話,就會開乙個以 test.txt 為名的新檔案。

3. 編寫檔案:

進入 vim 後,按 i 進入 i-mode,就可以編寫您的檔案了。在 vim 游標的移動可以由方向鍵來移動。backspace 鍵可消去前乙個字元,中文的話是乙個中文字。del 鍵可刪除游標所在處的字元(中文字)。

4. 存檔、離開:

如果您寫好您的檔案,就可以按 esc 回到 c-mode,然後 :w 就會存檔(注意,是冒號命令),但還不會離開 vim,要離開可按 :q,就可以了!也可以合起來用,:wq,就樣就會存檔後離開。怎麼樣,也不會很難吧!只不過操作方式和別的編輯器不一樣罷了,這樣豈不是很有個性。:-)

好了,這是就編輯的整個過程。下回開始是詳述各部份的功能,把 vim 解剖開來講,您可以馬上現學現賣。由於 vi(m) 的操作方式很有個性,因此,用了一次就會記住有這麼乙個功能,想忘也忘不了,但有時按鍵難免會忘記,但有這一種功能大概是忘不了的,查了幾次指令就可以記得住了。

大家來學VIM(乙個歷久彌新的編輯器) 四

yank 是什麼意思?有疑問的請查一下字典吧!就好像是中醫治療中的 拔罐 的意思啦 是不是叫 拔罐 知道的朋友指正一下吧 反正在 vi m 中,她就是複製 copy 的意思。這在 vi m 的思考邏輯裡,就是 拔 yank 起來,放 put 上去。其實複製的指令就是 y 乙個而已,為什麼要獨立成乙個...

大家來學VIM(乙個歷久彌新的編輯器) 八

shell命令 外部指令 執行外部指令。當然您的指令要在 path 內。執行前一次執行之外部指令。在這裡的 可不是強迫中止喔!vim 中有乙個很特殊的指令 是重複前一次的冒號命令。sh ell 執行 shell。使用 exit 回來。這在 vim gui 會在原視窗內顯示執行結果,在 elvis g...

實現乙個簡單的行編輯器

1.要求 2.開啟 關閉回顯和緩衝 3.顯示大小寫字母和數字 4.實現退格鍵 5.實現游標左右移動 6.實現del鍵刪除整行 7.總 但是行編輯器不能讓每個字元都輸出在螢幕上,有些鍵是要作為功能鍵來使用的,所以必須關閉回顯設定,讓我們自己來設計有選擇的輸出字元。二是在linux命令列的預設模式下,輸...