Vim 設定 foldmethod for PHP

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 直接寫這兩行也不行, 最後的解法如下:

  1. 先把預設的 php.vim cp 過來, 然後再於最下方加上這幾個設定.
  2. cp /usr/share/vim/vim71/syntax/php.vim ~/.vim/syntax/php.vim
  3. vim ~/.vim/syntax/php.vim # 於檔案最下方加入下面兩行

    set foldmarker={{{,}}} " 可省略, marker 預設就是 {{{,}}}
    set foldmethod=marker
    set foldlevel=0 " 預設全部關閉

  4. 順便再多加一行 hi Comment term=standout cterm=bold ctermfg=0
  5. 最近註解喜歡看黑色 XD

這樣子就收工囉~ 開個檔案弄一行 {{{, 再換行打 }}}, 然後 zc 看看會不會合起來就知道成功失敗囉~ 😛

更多詳細可參考:

 

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈Vim 設定 foldmethod for PHP〉中有 10 則留言

  1. 嗯嗯~ let php_folding = 1 我也有試過, 設在 php.vim 最上面.
    php.vim 上面註解說明是這樣,
    php_folding = 1 for folding classes and functions
    php_folding = 2 for folding all { } regions
    然後發現只要有 { } 就會變 folding, 反而縮的過多了, 所以才覺得應該另外自己設~
    原來 marker 預設是這個.. 感謝指點~ Orz...

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料