大伙來學VIM(一個歷久彌新的編輯器)[一]
本文出自:http://www.study-area.org/tips/vim/index.html
因为最近在学vim,所以转过来。里面是繁体,好多都是台湾的计算机术语,看的时候有点怪异,不过还是不影响阅读的。
大家來學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)?
http://www.vim.org/ 找個自己中意的 mirro 站抓。或許也順便抓 Win32 的可執行 檔回來在 windows 系統中使用。別忘了 runtime 檔也要抓, 否則會無法找到需要的檔案來執行。 http://www.fh-wedel.de/elvis/index.html ftp://ftp.pdx.edu/pub/elvis 也可試試 elvis(當然是免費的)。 CLE 的使用者也可以到: ftp://linux.tmtc.edu.tw/pub/CLE/i386/RedHat/RPMS 抓最新版來安裝,省時省力,而且還把必要的中文設定都弄好。 目前最新的版本,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 的模式可有六種,為免初學的人搞混,仍依一般的分類分成三種:
- ed 是一個很古老的行編輯器,就好像 DOS 下的 edline 一樣,vi,sed 這些編輯器都是從 ed 衍化而來的。當然 DOS 下的 edline 也是學 ed 而來的,但功能可就不能同日而語了!有興趣可 man ed 學看看,有些時候會只有 ed 可以用(當機救助的時候)。
其它的模式就碰到時再說明了!
基本教練:step by step
- 如果是 gvim,可由 icon(gtk 版本才有)或功能表來叫出 file browser 來選看看您要編輯哪一個檔,但如果您是初學的話不建議您這麼做,vi 就是以按鍵快速聞名,這是她的優點,您還是學起來吧,不然沒有 GUI 的時候會很不習慣的。
- 原始 vi 是不能在 i-mode 隨意移動游標的,得進入 c-mode 才能移動,因此就常常要按 Esc 來變換模式。vim 及 elvis 都打破了這個規矩。
- 盡量記住按鍵的意義,才不必死背,如 e 是 edit(編輯), w 是 write(寫入),q 是 quit(停止、離開)。
好了,這是就編輯的整個過程。下回開始是詳述各部份的功能,把 vim 解剖開來講,您可以馬上現學現賣。由於 vi(m) 的操作方式很有個性,因此,用了一次就會記住有這麼一個功能,想忘也忘不了,但有時按鍵難免會忘記,但有這一種功能大概是忘不了的,查了幾次指令就可以記得住了。