Vim 只要 {{{ 和 }}} 包起來, 就會自動折合 fold 的動作, 但是不知何時開始, 在 php 裡面的 fold 動作都沒用了, 花了點時間研究怎麼再弄出來(.vimrc 設了都不理我, 但是在 .vimrc 裡面使用 {{{,}}} 都還是有用. :~)
Fold 的動作快速鍵:
- zo: Open Fold
- zc: Close Fold
- zm: 全部縮起來(將 foldlevel-1)
- zM: 全部縮起來(設 foldlevel=0)
- zf: 製作出起始 Fold 符號
- zF: 製作出起始與結尾 Fold 符號
照理說是 .vimrc 設下述兩行就可以用.
- set foldmarker={{{,}}}
- set foldmethod=marker
- set foldlevel=0 " 預設全部關閉
但是 PHP 不行(預設 php.vim 設的 foldmethod=syntax, 但是又吃不到 .vimrc 設的 foldmethod), 然後在 .vim/syntax/php.vim 直接寫這兩行也不行, 最後的解法如下:
- 先把預設的 php.vim cp 過來, 然後再於最下方加上這幾個設定.
- cp /usr/share/vim/vim71/syntax/php.vim ~/.vim/syntax/php.vim
- vim ~/.vim/syntax/php.vim # 於檔案最下方加入下面兩行
set foldmarker={{{,}}} " 可省略, marker 預設就是 {{{,}}}
set foldmethod=marker
set foldlevel=0 " 預設全部關閉 - 順便再多加一行 hi Comment term=standout cterm=bold ctermfg=0
- 最近註解喜歡看黑色 XD
這樣子就收工囉~ 開個檔案弄一行 {{{, 再換行打 }}}, 然後 zc 看看會不會合起來就知道成功失敗囉~ 😛
更多詳細可參考: