編譯沒有 gui 的 Vim 7.3,無特殊需求,純升級。

  1. ftp.vim.org/pub/vim/unix/ 下載 unix 用的原始碼 vim-7.3.tar.bz2,解開後進入 vim73 目錄。
  2. 直接選 big 包的 features(包括 multi_byte 等沒理由不要的功能)。
    ./configure --with-features=big

(也可加 --enable-rubyinterp 等 optional feature,詳見 ./configure --help)

  1. make
  2. make install

之後下 vim --version 應該就能看到新設定。


部份相關設定(非全部的新功能)

vimrc 基本設定部份

if version >= 703
  set conceallevel=1
  set concealcursor=nc
  set colorcolumn=+1
  set cinoptions+=L0
  set undofile
  set undodir=~/.vim/undofiles
  if !isdirectory(&undodir)
    call mkdir((&undodir, "p")
  endif
  map  <C-ScrollWheelDown> <ScrollWheelRight>
  map  <C-ScrollWheelUp>   <ScrollWheelLeft>
  imap <C-ScrollWheelDown> <ScrollWheelRight>
  imap <C-ScrollWheelUp>   <ScrollWheelLeft>
endif
  • conceal 的設定以不影響排版為主。下圖說明:

    上半 normal mode,下半 insert mode

    以 help 檔為例,平時只要把 |:autocmd| 左右的「|」塗黑,不必真的移除。
    但游標移到該行時,因為 CursorLine 有上深灰,所以能識別有文字被隱藏掉。
    最後在 insert  mode(如圖下半部)或  visual mode,應照實顯示原文。

  • colorcolumn 在 textwidth 右邊標顏色。
    從 PSPad 轉到 Vim 的時候就想要這功能,不過出來以後效果挺醜的(也太麤了吧),所以最後配合 colorscheme 調成只有在游標所在的行能看見。前面擷圖中最右邊黑 column 即是。
  • L 是 cindent 新增的設定值,參考 :help cinoptions-values。
    另有新增 J 給 JavaScript 用,不過似乎預設就包含了。
  • undofile 沒設定的話就完全沒效果……
    這可是讓 :e! 或下次進入 Vim 後還能 undo 的便利功能啊。
  • 新增的水平 ScrollWheel 系列,測試沒效,先放置不管。

偵測到檔案類型為 help 時要跑的設定(help_rc 這種寫法是參考 c9s 的 gist 學來的)

fun! s:help_rc()
  set number
  if version >= 703
    set conceallevel=1
    set concealcursor=nc
    set colorcolumn=+1
  endif
endf
au FileType help :call s:help_rc()

因 help 類型檔案會重設 conceal 設定所以為之。

colorscheme

if version >= 703
  hi Conceal ctermfg=240 ctermbg=Black guifg=#585860 guibg=Black
  hi ColorColumn ctermbg=Black guibg=Black
endif

為了前述效果所用的顏色設定(換個跟我不一樣的 colorscheme 就不適用了。)