首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

大伙來學VIM(一個歷久彌新的編輯器)[一]

2012-06-28 
大家來學VIM(一個歷久彌新的編輯器)[一]本文出自:http://www.study-area.org/tips/vim/index.html因为最近

大家來學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.htmlftp://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 的模式可有六種,為免初學的人搞混,仍依一般的分類分成三種:

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,這樣才不會把您辛苦打字的文章給隨便搞亂掉。 ed 是一個很古老的行編輯器,就好像 DOS 下的 edline 一樣,vi,sed 這些編輯器都是從 ed 衍化而來的。當然 DOS 下的 edline 也是學 ed 而來的,但功能可就不能同日而語了!有興趣可 man ed 學看看,有些時候會只有 ed 可以用(當機救助的時候)。

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

?

?

基本教練: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 為名的新檔案。 如果是 gvim,可由 icon(gtk 版本才有)或功能表來叫出 file browser 來選看看您要編輯哪一個檔,但如果您是初學的話不建議您這麼做,vi 就是以按鍵快速聞名,這是她的優點,您還是學起來吧,不然沒有 GUI 的時候會很不習慣的。

?

3. 編寫文件: 進入 vim 後,按 i 進入 i-mode,就可以編寫您的文件了。在 vim 游標的移動可以由方向鍵來移動。Backspace 鍵可消去前一個字元,中文的話是一個中文字。Del 鍵可刪除游標所在處的字元(中文字)。 原始 vi 是不能在 i-mode 隨意移動游標的,得進入 c-mode 才能移動,因此就常常要按 Esc 來變換模式。vim 及 elvis 都打破了這個規矩。

?

4. 存檔、離開: 如果您寫好您的文件,就可以按 Esc 回到 c-mode,然後 :w 就會存檔(注意,是冒號命令),但還不會離開 vim,要離開可按 :q,就可以了!也可以合起來用,:wq,就樣就會存檔後離開。怎麼樣,也不會很難吧!只不過操作方式和別的編輯器不一樣罷了,這樣豈不是很有個性。:-) 盡量記住按鍵的意義,才不必死背,如 e 是 edit(編輯), w 是 write(寫入),q 是 quit(停止、離開)。

?

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

?

热点排行