LGJ Notes

蒙古大夫 2.0。 這裡紀錄的都不是我的專業,我的專業就是不專業。別傻了,什麼是專業?

« 找尋字碼 | Main | 字的環肥燕廋:Scale 篇 »

Vim7 的新功能
2006/05/18,20:32 :: 點閱次數 (11059)
Vim 已經在這個月八號釋出 7.0 正式版,Vim 的作者 Bram 也已經找到了全職工作,所以,這個版本意義重大,因為,將來 Bram 能花在 Vim 的時間將會減少。我們就來看看 Vim7 有了些什麼實用的新功能。


getscript plugin

:GetLatestVimScripts
  或
:GLVS

會從 sourceforge 線上更新最新的 Vim script。

vimball plugin

這是 Vim 檔案打包的新方式。例如我事先編輯好(或直接寫在目前 vim 正在編輯的檔案內容上亦可)欲打包的檔案(使用相對路徑)。例如在我的 ~/.vim 目錄中有:
~/.vim/doc/vifm.txt
~/.vim/plugin/vifm.vim
就可以編輯:
doc/vifm.txt
plugin/vifm.vim
只寫相對目錄,且每個檔案佔一行。假設,以上分別是在第一、二行,那麼要打包的話下指令:
:1,2MkVimball vifm
這樣就會在目前工作目錄上打包成 vifm.vba(VimBall Archive)這個檔案。現在我散佈給其他人,他就可以收到這個 vifm.vba 後,直接由 vim 打開他:
vim vifm.vba
可以看他的內容,覺得滿意,想安裝的話,執行:
:so %
就會安裝這些檔案(安裝在家目錄)。

spell 拼字檢查,已整合進 Vim7,變成是內建的功能了

:set spell
打開這個功能。或更進一步的指定:
:setlocal spell spelllang=en_us
關閉:
:set nospell
反白的部份是不認得的字。所以,除非你有個好的字典檔,否則文件容易變成大花臉,比較好的作法是,要用的時候才打開,用完後關閉。
]s 移至下一個拼錯或罕用的字。
[s 移至上一個拼錯或罕用的字。
]S 同 ]s,但只認完全拼錯的字。
[S 同 [s,但只認完全拼錯的字。
z= 檢查游標所在處的建議 words。
zg 加字於家目錄的字典檔。undo 鍵:zug,移除該字。
zw 同 zg,但標示此字為完全錯誤的字。undo 鍵 zuw,移除該字。
字典檔的格式和 Mozilla/OO.o 使用的 Myspell affix 壓縮檔相類似:

http://lingucomponent.openoffice.org/spell_dic.html
http://lingucomponent.openoffice.org/affix.readme

Vim 可以經由 :mkspell 指令可以將 Myspell 的 *.aff/*.dic 轉換成 Vim 使用的 *.spl/*.sug。當然要從純文字檔來轉換也是可以的。另外,Vim 有延伸他的功能,亦即也支援 Hunspell。詳細請 :help spell

Omni 智慧型單字補全(completion)

這是在 insert mode 就可以把一些單字補全的功能,相當實用。

以 Ruby 為例:

:setlocal omnifunc=syntaxcomplete#Complete
這樣在編輯 Ruby 碼程式時,在鍵入 req 後,按 c-x c-o,就會自動補全為 require,有多種可能時,會列出選單供選擇。

內建 grep 功能

:vim[grep]
這個功能和 :grep 其實是一樣的,但目前已經內建於 Vim,不必再外部呼叫 grep 程式了,好處就是可以和 / 尋找功能一樣的方便使用,使用上整合流利,也支援壓縮檔及 remote 搜尋。例如:
:vim /require/ *.rb
vim 會開啟第一個找到的檔案,並把游標置於所找到的關鍵字上,要開啟第二個檔,可以下 :cn 指令,他的相反指令是 :cp:cN。要知道目前所編輯的檔案是所找到的哪一個檔,可以下 :cc 指令,在狀態列會顯示。

CJK 列印

:hardcopy            ==> 直接送印表機
:hardcopy > some.ps  ==> 轉出所指定的 ps 檔。
用於中文文件,要設定好所使用的字型,以我個人 .vimrc 的例子:
set printmbcharset=ETEN
set printmbfont=r:MOESung-Regular
set printoptions=paper:A4
這會使用 MOESung-Regular 字型。但這個 ps 檔是不內嵌字型的,只指定字型名稱。這在目前的 gs8 可能會有問題,如有需要,可試著以下的方式來處理:

取得: MOESung-Regular

cd /usr/share/ghostscript/8.15/Resource
mkdir CIDFont
cd CIDFont
cp yourpath/MOESung-Regular .
即可。

這裡只是簡單的介紹,其他還增加許多功能,包括新的選項、新的 Vim script 函式及指令,詳細請:

:help version7.txt

迴響

Comment Icon

vim不会就是他一个人的作品吧
太伟大了。。。

Posted by: Fwolf at 2006/05/18, 23:15
Comment Icon

Bram 是最主要開發者,當然也有許多其他參與的朋友。但接不接受他們的 code 則是由 Bram 決定的。

Posted by: LGJ at 2006/05/18, 23:32
Comment Icon

BTW,Bram 所找到的工作的公司,允許他撥出部份時間繼續維護 Vim。:-)

Posted by: LGJ at 2006/05/19, 00:55
Comment Icon

估计Bram所在的公司也离不开vim
嚯嚯

Posted by: Fwolf at 2006/05/19, 12:01
Comment Icon 難怪有人說..

記得朋友曾經說過
有位前輩用了幾十年的VIM
還是天天發現到新玩意
真是可怕..

Posted by: CFC at 2006/06/18, 13:08
Comment Icon 幾十年的 VIM?

正宗的 vi 才 30 歲左右,vim 是他一半年紀,才 15 歲左右。

Posted by: LGJ at 2006/06/18, 23:36
Comment Icon Tab 功能

漏了 Tab 功能的說明,這個部份請參考 Neo 的 blog:
http://wjlin168.blogspot.com/2006/05/vim7.html

Posted by: LGJ at 2006/06/19, 20:56
 
Accessible and Valid XHTML 1.0 Strict and CSS Powered by BS2 Blog