我的 Vimrc for Vim, Win32 Gvim, Macvim

最近在調整我的 vim 設定,目標是在 vim, win32 gvim, macvim 上都能有盡量相同的編輯體驗。

先說明一下我的工作環境,我有一台 Mac mini server,平常會用 pietty 連上去改 code;有一台 Macbook Air ,使用 MacVim 開發,家中和公司使用的是 Win 7 64bit,使用放在 dropbox 的 portable gvim。

主要用到的 plugin 是 Command-T, taglist 以及 omnicomplete 。

一開始我用 vgod 的 vimrc 來當範本修改,詳細設定可以參考我的 vimrc

主要的困難點大概有幾個:

Command-T

在 MacVim 上, Command-T 使用相當簡單,裝好以後直接執行
ruby extconf.rb
make
之後就可以使用了。
但純文字模式下的 vim 就沒這麼簡單了,我在 mac server 上重編的 +ruby vim 無論如何都沒辦法把編譯好的 plugin 載入。
後來只好折衷直接使用 macvim 內置的 vim ,他在你的 MacVim.app/Contents/MacOS/Vim 。

這個檔案不管是複製或是 ln -s 到其他 path 執行,都會報錯,最後是用

alias vim='PATH/MacVim.app/Contents/MacOS/Vim'
來解決。

不過這個用法有一個需要注意的地方,就是在 vim 中我們判斷 MacVim 一般會用

has("gui_macvim")
來判斷,但用 MacVim 自帶的 Vim,這個判斷會成立。

因此要改用

has("gui_macvim") && has("gui_running")
Windows 的部份比較麻煩,你要先安裝 Ruby 和 DevKit 才能編譯這個 plugin。

編譯:

C:\Ruby192\DevKit\devkitvars.bat
cd yourvimfiles\plugins\ruby\command-t
ruby extconf.rb
make
make install
然後因為現在官網的 gvim 7.3.46 版只支援 ruby 1.9.1,要抓最新的 trunk code 下來編譯成 +ruby。

這個動作在 windows 實在不是很容易,所以這邊提供了編譯好的版本

taglist

taglist 需要 Exuberant Ctags

這個部份 windows 平台反而單純,直接下載編譯好的執行檔丟到 vim 目錄下就好。

Mac 自帶的 ctags 不相容,所以需要抓新的來編。

我是直接用

brew install ctags
讓各平台的 plugin 都能正常運作以後,最後就是設定一些快速鍵和 fix term 的問題,這邊就是個人偏好了,詳情可以直接看我的 vimrc github

最後,如上所述,這份 vimrc 主要是在 mac 和 windows 使用,沒有在其他作業系統測試過。

Comments