艱難學習至今,提出三項。


<Esc> 難按

切換 normal mode 是最硬的基本技,<Esc> 不快你立馬被打爆。
可以用 <C-[> 取代,或配合 <Leader>(預設是 \,Enter 鍵是一字或 L 型會影響其手感)或 <LocalLeader> 鍵。
例:按兩下 , 即進入 normal mode

let maplocalleader = ","
noremap  <LocalLeader>, <C-\><C-N>
noremap! <LocalLeader>, <C-\><C-N>

早裝早輕鬆的插件

GSession 配合 git branch(不過 Windows 下比較難使用 git)是管理 session 的快樂方案。參考 Vim-Taiwan 上的討論串
因為多檔編輯需求大,但 session 操作繁瑣,所以認定首要插件就此一支。


學會查 help

大量招式(睇 :help quickref)不是單純常用就能學會的,已知指令也值得翻文複習。畢竟軟體演變下來,誰比較懂得善用靠的還是知識。

  • 更新 help

    如果 Vim 版本很舊,可考慮更新整個 $VIMRUNTIME(包含 help 以外的各種檔案,所以會花點時間)。
    以下為系統有 aap 支援的情形:
    :!cd $VIMRUNTIME
    :!aap -f ftp://ftp.vim.org/pub/vim/runtime/main.aap fetch
    另外安裝插件等操作動到 doc 檔案時,也需要重建一下 tag(讀 help 時用來 jump 的、類似超連結的東西)
    :helptags ~/.vim/doc
    (其中 ~/.vim/doc 可能是其他位置,即放說明文件的地方)
  • 益於求助的 map

    預設 <F1> 等同於 :help 其實不易利用,可改為:

    • 於 normal mode 查詢游標所在單字的說明。
    • 於 visual mode 查詢選取文字的說明,對付 'sb' 這般有引號的項目較方便。
    • 以上若先按 <LocalLeader> 則將說明開在新分頁。
    map  <F1> :help <C-R>=expand('<cword>')<CR><CR>
    map  <LocalLeader><F1> :tab help <C-R>=expand('<cword>')<CR><CR>
    xmap <F1> :<C-U>call RegStash(1)<CR>gvy:let b:tempReg=@"<CR>:call RegStash()<CR>:help <C-R>=b:tempReg<CR><CR>
    xmap <LocalLeader><F1> :<C-U>call RegStash(1)<CR>gvy:let b:tempReg=@"<CR>:call RegStash()<CR>:help <C-R>=b:tempReg<CR><CR>
    (其中 RegStash 來自暫存與還原 register 的 function,也可移掉)

    在 help 文件中,預設可用 <C-]> 跳到游標所在單字的說明(類似超連結),按 <C-O><C-I> 則是在次次跳轉的位置來回(類似上一頁、下一頁),這裡也可稍微 map:

    • 若檔案唯讀(help 文件皆唯讀),就讓 Enter 也可跳進 tag、BS 也可回上一頁。
    • Alt-LeftAlt-Right 當成上一頁、下一頁使用。
    nnoremap <expr> <CR> &modifiable ? "i<CR><C-\><C-N>" : "<C-]>"
    nnoremap <expr> <BS> &modifiable ? "i<C-W><C-\><C-N>" : "<C-O>"
    nnoremap <M-Left> <C-O>
    nnoremap <M-Right> <C-I>

註:以上只是讓動作變簡單,要真正愛用 help,還是要親身體會、自求多福~