Vim是功能強大的文本編輯器,但是每個工具都有其針對的適用群體。如果你只是偶爾做些文本編輯工作的話,那靈活而又顯得繁瑣的設置,以及特別的操作方式可能不適合你。但是你是跟我一樣,是個平平凡凡的程序員,每天要花費大量時間在寫代碼,把弄著各式各樣的程序語言:C\C++,Python,Tcl,Html,Xml,...,那么你可能需要像Vim這樣的工具,即使你要在它上面花費些時間去熟悉和適應它。
先講述一下,我跟Vim相處的過程,這是個從認識,到拋棄,到再認識,到再學習,到喜歡的過程。最早接觸到Vim是在Solaris上,需要修改編輯一些配置文件,看著其他工程師們手指隨意地在鍵盤上敲擊,就完成內容的修改,根本沒有動用到什么鼠標,那是好生羨慕。嚴格意義來說,那時候碰到還不是Vim,只是VI而已。在終端上工作,沒有什么Notepad之類的程序,只好把指令抄在紙上,查查網上的資料,學會了h,j,k,l,w,q,e,這幾個簡單指類來進行簡單的文本查看工作,僅此而己。后來在Windows上安裝了VIM,但是掙騰了幾下,沒有適應過來,也就只好使用UltraEdit了。UltraEdit對一般的純文本,按Windows習慣來說是蠻好使的。再后來,玩了會兒ruby,又裝起了Vim,但是那時候的對Vim的使用也只是限于上面的簡單的指令,再加上Vim的插件,來完成語法高亮,ruby中的MVC文件的方便跳轉而已,還是沒有習慣Vim,有時候還是不經意用UltraEdit來打開查看編輯文件。直到最近,需要編寫Docbook,以及用Python,才真正花費了大量時間來學習使用Vim,才真正認識到到它的可愛。
接著說說,我為什么使用Vim,覺得值得學習它,喜歡它的理由吧,純粹以自己的觀點來敘述。
?跨平臺性,無論在Windows,Linux,Solaris,FreeBSD等等操作系統上,以及一些名都沒有聽過的系統上,你都可以找到它。這樣就保證了你的學習投資的保值性,就拿UltraEdit做對比吧,即使你在UltraEdit上學會靈活運用許多功能,到了Linux上,你在這部分學習投資就沒有價值了,你可能需要找其他稱手的編輯器,然后再進行學習一些功能。特別在一些古老的大型機上的系統上,即使沒有Vim,一般來說,還有Vi的,這樣一般簡單的操作命令還是可復用的。如果你確定你一直只呆在Windows上可忽略這一點。
開源免費,Vim是開源軟件,意味著你可以自由使用,修改,查看它的代碼。我對FreeSoftware,Open Source,Copyright,這些都是持中間立場的。對于自由查看,修改程序代的保證,有總比沒有好。對于盜版軟件,你有能力還是不要使用的好。正是這一特性,也是促使我放棄UE,投向Vim的重要原因。如果你對于使用盜版軟件蠻不在乎,或你有財力購買正版軟件,也可忽視這一條。
支持多種編程語言,Vim是程序員的編輯器,當然對程序員是非常友好的。它對C,C++,Python,Perl,Tcl,Ruby,PHP等等,以及一大堆我沒有聽過見過的語言,以語法著色,代碼縮進等基本支持,還有一些其他特性。比如,我在編輯XML時,它能提供自動封閉標記的支持。因此如果你有對多種格式的文本編輯需要,那么你就有了一個編輯的大平臺,不需用再裝一大堆針對某個格式特定的編輯器了。正如跨平臺性一樣,你只要一次投資,多次回報。如果你專注于某一格式文件的工作,那這一點同樣對于你來說是沒有用的。
高效地編輯,Vim的操作方式相對于Windows上呆久了的人來說,是蠻奇特的,這一點我深有體會。但是正如很多人講的那樣,你掌握了其操作后,發現它會大大增進你的編輯速度。你的雙手根本不用離開鍵盤,就完成了許多事情,可以讓鼠標歇會兒了。如果你特別鐘愛鼠標,或只偶爾打打字,那么我說的這點,同樣對你沒有用。
靈活的設置,Vvim可自定義的地方太多了,你可以自定義鍵盤映射,語法著色,縮進,格式等等。所以你在網上可以看到許多人貼著自己的vimrc配置文件,配置著自己喜歡的作業環境。如果你需要開盒即用的工具,那么這點對你的吸引力就不大了。
安裝
可到VIM官網,選擇Self-install executable形式的安裝包下載安裝。
幫助
幫助非常重要,VIM帶有我認為非常好的幫助系統,可以獲取你需要的任何有關VIM的詳細信息。使用幫助非常簡單,只需要:help安裝即可。安裝后程序帶的是英文幫助,如果你對英文不是特別適應的話,可以去http://vimcdoc.sourceforge.net/下載安裝中文幫助,或像我一樣直接使用在線的中文幫助 對于基本操作方法,通過Vim的教程,你應該能很好的掌握了。一些常見的設置,關于特定類型的配置,因人而異,不想多述。我會列出一些認為比較好的參考文章,置于文尾供參考。但在下面,我還是在Windows下的Vim的使用做點說明,或許你現在用不上。 安裝完Vim后,你在其安裝目錄下應有vim$ver($ver是版本號)和vimfiles兩個文件夾。其中vim$ver是vim的程序運行時目錄,在里面會看到gvim.exe(vim的GUI),vim.exe,xxd.exe等程序,一大堆的dll動態鏈接庫,還有就是color(語法著色),doc(幫助說明),indent(縮進)等文件夾。在vimfiles內,也會看到color,doc,indent等類似的文件夾,但它們里面沒有文件。vim$ver和vimfiles兩者有什么區別呢,vim$ver是運行時文件目錄,vimfiles相當于個人配置目錄,常常有文章說在linux下將什么插件放進.vim下的plugin等等之類的,其.vim在windows下就相當于vimfiles。 Tabpage是Vim后增的功能,類似于UltraEdit的標簽頁。也想在Windows下使用Untraledit一樣,在同一個VIM實例中打開多個文件的話,需要做些小修改。在注冊表中刪除"HKCR\*\shellex\ContextMenuHandlers\gvim\"主鍵,然后在Shell下新項"Vim 編輯",再在其下新建command項,然后修改其值為$vimruntime\gvim.exe -p --remote-tab-silent "%1",其中$vimruntime修改為你系統中VIM實際運行目錄。如果你不知道$vimruntime的值,可以打開gvim,輸入:echo $vimruntime。你想雙擊關聯文件,也在同一實例打開的話,查找注冊表中gvim相關項,將$vimruntime\gvim.exe改為上述的值即可,主要是HKLM\software\classes\application\gvim.exe\shell\edit\command下的值。 具體可參見"Vim實用技術:實用技巧"。我推薦內部編碼使用utf-8,以支持國際化,即encoding=utf-8。這需要在_vimrc中進行設置,網上常有人啟用這一選項后Vim菜單和消息出現亂碼。據我的經驗,需要將這encoding=utf-8寫在_vimrc最開頭,然后設置language message,可參見我的_vimrc文件。 Vim使用中,配置文件vimrc是非常重要的,用:echo $myvimrc,來查看你的vimrc在哪里。 其中termencoding=gbk是因為windows中的“命令提示符”窗口只能使用gbk編碼,不能像Gnome中的Console那樣用utf-8。不設置的情況下,使用“命令提示符”下的vim,而不是gvim時,會出亂碼。在設置文件中的色彩和字體,可以先在gvim菜單中設置,然后將你所喜好的,添加到_vimrc文件中。看到我的vimrc文件,你是不是感覺特別短。因為我把許多跟文件類型的相關設置放在其對應的腳本里,扔在vimfiles文件夾了。在vimrc里,例如常見的空格,制表符,縮進都沒有在這配置。 Vim中一些內置的變量,你都可以通過:echo varname來查看值,比如::echo $myvimrc 對一些帶值的配置選項,你可以用:set optionname來查看其當前值,或用:set optionname=val來更改其值.比如:set fileformat查看文件格式,因為dos,unix,mac對于換行是不一樣的。:set filemat=unix的話,換行將用LF,而不是dox\windows下的CR,LF。
IBM開發中心非常實在的Vim實用技術系列: Easwy的博客,里面有用的信息,更多的Vim資源鏈接
操作方法
Vim文件夾結構
標簽頁
文件編碼
vimrc文件
如果這為空的話,你可以在$vim目錄,建一新的_vimrc文件。
我的vimrc文件set encoding=utf-8
set termencoding=gbk
set nocompatible " We're running Vim
set nobackup "We don't need the backup file
set showmatch "Show where the bracket match
set showcmd
set ruler "Show the line and column number
set hlsearch "Highlight the search key
set backspace=indent,eol,start
set fileencodings=ucs-bom,utf-8,chinese
set guifont=courier_new:h10
set autoindent
syntax on " Enable syntax highlighting
filetype plugin indent on " Enable filetype-specific indenting and plugins
language message zh_CN.utf-8 " Use chinese message
color zellner " Color theme
雜項
這些變量,注意大小寫,常用的有
$VIM Vim的安裝目錄
$vimruntime Vim運行時目錄
$myvimrc 用戶的_vimrc文件
$home 用戶的主目錄
我常常使用:e $myvimrc來編輯我的vimrc文件,非常方便。 參考鏈接
Vim實用技術(1)-實用技巧
Vim實用技術(2)-常用插件
Vim實用技術(3)-定制Vim
Vim專欄