本文描述如何在 Ubuntu 環境中利用外掛程式管理工具 Vundle 搭建一個 Vim 開發環境,從而提高在 Linux 下使用 Vim 進行編程的效率。 安裝 Vim
在 Ubuntu 上安裝 Vim 很簡單,在終端敲入如下命令即可:
$ sudo apt-get install vim
在 Ubuntu 14.04 以上版本執行上述命令安裝的 Vim 是 7.4+ 版本,但如果你和我一樣使用 Ubuntu 12.04 的話,就沒有那麼幸運的。因為在 Ubuntu 12.04 上用 apt-get 安裝的 Vim 是 7.3 版本的,這個版本相對來說還是太舊了,一些外掛程式並不支援,比如 YouCompleteMe。所以我們需要將其升級到 7.4 以上的版本,看到有網友說添加 PPA 源之後可以升級,如下:
$ sudo add-apt-repository ppa:fcwu-tw/ppa $ sudo apt-get update $ sudo apt-get install vim
但我試過不行,所以我還是下載 Vim 的原始碼進行安裝了。我這裡直接安裝最新的 8.0 版本了,相關的原始碼可以在如下網址找到: github倉庫:https://github.com/vim/vim vim官網:http://www.vim.org/
下載、編譯、安裝命令如下:
$ git clone https://github.com/vim/vim.git$ cd vim/src$ ./configure --enable-pythoninterp=yes$ make$ sudo make installvim
敲入 vim 命令可以看到如下畫面:
需要注意的是,這裡的 ./configure --enable-pythoninterp=yes 配置是必要的,表示開啟 Vim 的 Python2 支援。如果想開啟 Python3 支援,則參數應為 --enable-python3interp=yes。
Vim 的預設安裝路徑是 /usr/local/bin/vim,原來的 Vim 是 /usr/bin/vim,所以 Vim 8.0 和 Vim 7.3 是可以共用的。那為什麼輸入 vim 執行的是 8.0 版本的而不是 7.3 版本的呢。看看環境變數 PATH 就知道了,因為 /usr/local/bin 的路徑在前面嘛。
$ echo $PATH/sbin:/usr/sbin:/usr/lib/lightdm/lightdm:/usr/local/bin:/usr/bin:/bin
所以現在的 vim 執行的是 8.0 版本,而 vi 執行的是 7.3 版本。
另外,我們可以通過如下命令來檢查 vim 是否已經支援 Python。沒有執行./configure --enable-pythoninterp=yes 編譯的話是這樣的:
$ vim --version | grep python+cryptv +linebreak +python +viminfo+cscope +lispindent -python3 +vreplace
而執行./configure --enable-pythoninterp=yes 之後編譯的話是這樣的:
$ vim --version | grep python+cryptv +linebreak +python +viminfo+cscope +lispindent -python3 +vreplaceLinking: gcc -L/usr/local/lib -Wl,--as-needed -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lnsl -ldl -L/usr/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
安裝 Vundle
由於 vim 缺乏預設的外掛程式管理器,所有外掛程式的檔案都散布在 ~/.vim 下的幾個檔案夾中,這樣導致各種外掛程式的安裝、更新、刪除都需要自己手動處理,既麻煩費事,又可能出現錯誤。所以我們需要外掛程式管理器的幫忙,常見的外掛程式管理器有 vundle、pathogen 等等,我們這裡使用 vundle。
Vundle 託管在 Github 上,所以使用 git 下載 vundle ,並將其存放於 ~/.vim/bundle/vundle 即可。使用如下命令直接將原始碼檢出到該目錄:
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
下載完了 vundle 後,還需要配置 .vimrc 檔案。
為了不讓 .vimrc 看起來太臃腫,我是建立了一個 ~/.vimrc.bundles 檔案來儲存所有外掛程式的配置。先在 ~/.vimrc.bundles 檔案中包含如下內容:
filetype off set rtp+=~/.vim/bundle/vundle/call vundle#rc()
然後在 ~/.vimrc 檔案中加入內容:
if filereadable(expand("~/.vimrc.bundles")) source ~/.vimrc.bundlesendif
這樣 vundle 就準備就緒了。 安裝外掛程式
我們需要知道,Bundle 分為三類: 在 Github vim-scripts 使用者下的 repos,只需要寫出 repos 名稱 在 Github 其他使用者下的 repos,需要寫出“使用者名稱/repos名” 不在 Github 上的外掛程式,需要寫出 git 全路徑
比較常用就是第二種,也就是以“使用者名稱/repos名”的方式。我們這裡將外掛程式的配置資訊放在 ~/.vimrc.bundles,如下:
" Define bundles via Github repos "Bundle 'christoomey/vim-run-interactive'Bundle 'Valloric/YouCompleteMe'Bundle 'croaky/vim-colors-github'Bundle 'danro/rename.vim'Bundle 'majutsushi/tagbar'Bundle 'kchmck/vim-coffee-script'Bundle 'kien/ctrlp.vim'Bundle 'pbrisbin/vim-mkdir'Bundle 'scrooloose/syntastic'Bundle 'slim-template/vim-slim'Bundle 'thoughtbot/vim-rspec'Bundle 'tpope/vim-bundler'Bundle 'tpope/vim-endwise'Bundle 'tpope/vim-fugitive'Bundle 'tpope/vim-rails'Bundle 'tpope/vim-surround'Bundle 'vim-ruby/vim-ruby'Bundle 'vim-scripts/ctags.vim'Bundle 'vim-scripts/matchit.zip'Bundle 'vim-scripts/tComment'Bundle 'mattn/emmet-vim'Bundle 'scrooloose/nerdtree'Bundle 'Lokaltog/vim-powerline'Bundle 'godlygeek/tabular'Bundle 'msanders/snipmate.vim'Bundle 'jelera/vim-javascript-syntax'Bundle 'altercation/vim-colors-solarized'Bundle 'othree/html5.vim'Bundle 'xsbeats/vim-blade'Bundle 'Raimondi/delimitMate'Bundle 'groenewege/vim-less'Bundle 'evanmiller/nginx-vim-syntax'Bundle 'Lokaltog/vim-easymotion'Bundle 'tomasr/molokai'Bundle 'klen/python-mode'
接著,開啟 vim,輸入 :BundleInstall 或者直接在終端輸入 vim +BundleInstall +qall 安裝外掛程式。
有些外掛程式比較大,需要等待一段時間才能下載、安裝完畢。 vim 協助文檔
vimtutor 是一個不錯的入門文檔,在終端直接輸入 vimtutor 即可開啟,這個文檔在網上可以找到中文版。
另外,在 vim 中輸入 :help 也可以查看協助文檔,如果實在看不慣英文,也可以切換成中文的。
首先執行如下命令下載 vimcdoc-1.8.0.tar.gz:
$ wget http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.8.0.tar.gz
然後解壓 vimcdoc-1.8.0.tar.gz,進入 vimcdoc-1.8.0 目錄可以找到 doc 目錄,將 doc 中的全部檔案複製到 ~/.vim/doc/ 目錄。
重新進入 vim,輸入 :help 可以看到協助文檔變成中文了。
如果無法顯示中文,在 ~/.vimrc 中添加:
set helplang=cnset encoding=utf-8
出錯提示
如果在安裝完外掛程式後啟動 vim 出現如下提示,則說明你的 vim 需要升級。
YouCompleteMe unavailable: requires Vim 7.4.1578+.
如果在安裝完外掛程式後啟動 vim 出現如下提示,則說明你的 vim 需要重新編譯以支援 Python。
YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support