Vim folding

前言

原來vim也是可以把code folding起來的

參考文獻

vim folding @ 工作小錦囊 :: 隨意窩 Xuite日誌

Folding | Vim Tips Wiki | Fandom

設定方法

如同文章所述, 基本的類型有好幾種最終我是選用marker

寫在.vimrc

因為我不管怎麼用指令都弄不出來,最後還是寫在.vimrc內一次搞定

1
2
3
4
5
6
syntax on
set foldmarker={{{,}}}
set foldmethod=marker
set foldlevel=0 " 預設全部關閉
let php_folding = 1 " 這個很重要
set foldnestmax=3

然後就只要在folder前加上# comment {{{`然後段落的最後加上`}}}就好了

寫成lua for NvChad

現在我主要都換成neovim+NvChad所以這個foldering功能也得塞進NvChad的custom內

1
2
3
4
5
6
vim.cmd('syntax on')
vim.cmd('set foldmarker={{{,}}}')
vim.cmd('set foldmethod=marker')
vim.cmd('set foldlevel=0')
vim.cmd('let php_folding = 1')
vim.cmd('set foldnestmax=3')

基本上就是把vimrc內的設定用
vim.cmd('vimscript content')

的形式包起來寫過就好了

相關指令

commandeffect
zoOpen Fold
zcClose Fold
zm全部縮起來(將 foldlevel-1)
zM全部縮起來(設 foldlevel=0)
zf製作出起始 Fold 符號
zF製作出起始與結尾 Fold 符號
zi啟用/關閉折疊
zo打開折疊
zc關閉折疊
zO打開所有折疊
zC關閉所有折疊
zx更新折壘,即除了游標所在折疊不關,其他都關掉

結論

其實這樣很方便,不會一個檔案看起來落落長的很難看