Vim Plugins


延續 上一篇筆記, 這篇繼續整理一些常用的 plugins, 主要都是參考自 “快快樂樂學 vim“ 還有其他 google 找到的, 然後整理我自己覺得不錯的 plugins 和 vim 的設定.

另外因為我在很多台機器工作, 所以我也把這些設定放到 github, 方便轉換使用. 有需要的朋友可以參考看看.

Vim Settings

跟一般的 unix 應用程式慣例一樣, 都會用 ~/.{appname}rc 作為設定檔名稱, 然後用 ~/.{appname} 作為更進一步的設定目錄, vim 的設定檔就是 ~/.vimrc~/.vim/ 兩個.

  • ~/.vimrc: 初始設定, 可以把一些想要初始的設定放在這裏, 像是把 Vim Notes 提到的設定放在這裡, 底下是我的部分設定:

    1
    2
    3
    4
    5
    6
    " ## vim settings
    set tabstop=4 " Set width of a TAB to 4
    set shiftwidth=4 " Indents will have a width of 4
    set softtabstop=4 " Sets the number of column for a TAB
    set expandtab " Expand TABs to spaces
    set nu " show line number
  • ~/.vim/: 其他進階設定資料

Vim Plugins

主要都是參考 “快快樂樂學 vim“ ,用了之後覺得不錯的.

  • vim-pathogen
  • vim-powerline 改用: vim-airline, 前者已經被宣告 deprecated 了.
  • NERDTree
  • vim-markdown
  • ColorSelector
  • vim-javascript

vim-pathogen

用來管理 vim plugin, 可以省去安裝時的困擾, 只要把 plugin 從 git clone 放到固定目錄即可. 一般設定是放在 ~/vim/bundle. 安裝/移除都只要把目錄放入 or 移走即可. pathogen 本身的安裝也很簡單, 依照官方文件, 只要在 .vimrc 放入這行即可: execute pathogen#infect()

vim-powerline vim-airline

主要是增加 Vim 比較漂亮的狀態列, 可以顯示目前 vi mode (NORMAL, INSERT, REPLACE … etc), 還有其他像是 dirty status, filename, file encoding, new line, extension name, cursor position …

透過 pathogen 安裝很簡單, 只要 clone 到 ~/.vim/bundle, 然後在 ~/vimrc 加入以下即可:

1
2
"## vim-airline
set laststatus=2 " Always show the statusline

第一次使用要在 Vim 下 :Helptags.

airline 也支援類似 tab 的概念,需要使用則在 .vimrc 加入以下設定:

1
2
3
4
5
6
7
8
" enable tabline
let g:airline#extensions#tabline#enabled = 1
" set left separator
let g:airline#extensions#tabline#left_sep = ' '
" set left separator which are not editting
let g:airline#extensions#tabline#left_alt_sep = '|'
" show buffer number
let g:airline#extensions#tabline#buffer_nr_show = 1

如此只要開兩個檔案以上,畫面上方就會出現不同 Buffer 的 Tab,要在不同 Buffer 切換的方法如下:

  • :bn: 跳到下一個 buffer
  • :bp: 跳到前一個 buffer
  • :b n: 往前幾個跳
  • :bd: 關掉目前的 buffer

另外也可以調整 Theme: let g:airline_theme='wombat',Theme 的名稱可以看這裡

這個 plugin 做得很漂亮,而且很強大,用過之後就會發現:回不去了。。。。

  1. airline 還可以使用在 bash mode, 有空再來研究。
  2. 原本推薦的 vim-powerline 已經不再維護, github 上也推薦大家使用 airline 了.

NERDTree

NERDTree 是用來呈現樹狀結構的 plugin, 像方便直接選擇檔案. 安裝同上, 直接 clone 後放到 bundle 即可.

使用也很簡單, 只要在 e-mode 輸入 :NERDTree 即可 (注意大小寫), 如果想要 vim 啟動就自動帶起, 那麼可以在 ~/.vimrc 加入以下這段: autocmd VimEnter * NERDTree, 如此開啟 vim 就會自動帶起 NERDTree.

檔案開啟後, 其實就是 split mode, 所以透過 ctl + w + w 切換 screen, 如下圖:

vim-markdown

就是 markdown plugin, 主要提供 syntax highlight, 還有幾個 key mapping, 像是 ]], [[ 可以快速地在各個段落間移動.

其實我用 {, } 移動也很快 XD

預設會把 h1 section 收起來, 如果不喜歡可以在 ~/.vimrc 關掉: let g:vim_markdown_folding_disabled=1

寫到這裡, 發現這個 plugin 有點雞肋 …. orz ..

ColorSelector

用來套用各種前景 / 背景顏色的設定, 安裝都一樣.

使用方式: e-mode 輸入 :SelectColorS

vim-javascript

用來改 javascript 的, 要打開 syntax highlight 的話, 直接下 :syntax enable

我的 Vim Settings

因為我常在很多環境工作,所以乾脆把這些設定打包好,放在 rickhw.vimrc,到了新的環境只要直接 clone,執行 ./setup.sh 就可以完成設定. 這個 script 主要會做以下的事情:

  1. clone plugin, list 參見 README.md, 之後可能會增減.
  2. 建立兩個 link:
    • $HOME/.vim/
    • $HOME/.vimrc
    • 原本的會備份成 .vim.bak, .vimrc.bak
  3. 如果想恢復,可以執行 ./remove.sh 即可

Todo

隨著使用的習慣不同,應該還有很多改善空間,現在想到的 Todo list 如下:

  • 把 plugin 改成 clone 某一個 branch and hash
  • 測試其他環境 (CentOS, Ubuntu, Win7),目前只有在 OS X 上試過
  • 再試看看其他 plugins, 目前想找的有:
    • javascript code formatter, content assist (auto-complete)…
    • 試試 template 產生器, 像是 snipmate
    • 其他 syntax highlight, 像是 SQL, HTML5, node.js

資源

延伸閱讀 (站內)

參考資料


Comments