Vim可以摺疊Ruby代碼,但不能評論。如何在Vim中同時添加代碼和評論?
在.vimrc中添加此項以將foldmethod更改爲註釋後,我無法再摺疊代碼。
autocmd FileType ruby,eruby
\ set foldmethod=expr |
\ set foldexpr=getline(v:lnum)=~'^\\s*#'
如何配置Vim以同時摺疊註釋和代碼?
Vim可以摺疊Ruby代碼,但不能評論。如何在Vim中同時添加代碼和評論?
在.vimrc中添加此項以將foldmethod更改爲註釋後,我無法再摺疊代碼。
autocmd FileType ruby,eruby
\ set foldmethod=expr |
\ set foldexpr=getline(v:lnum)=~'^\\s*#'
如何配置Vim以同時摺疊註釋和代碼?
在我最近的Vim 7.3.823快照中,$VIMRUNTIME/syntax/ruby.vim
(2009年12月2日版)對Ruby構造和註釋塊都有摺疊。
只要把
:let g:ruby_fold = 1
到~/.vimrc
。 (並確保你沒有一個名爲ruby_no_comment_fold
變量)。
您可以使用foldmethod=marker
並添加{{{
/}}}
標記(或您選擇的其他標記)來指示摺疊開始和結束的位置。
您還可以修改定義ruby語法突出顯示的文件,以調整其認爲適合使用foldmethod=syntax
摺疊的內容。
第三種選擇是開發一個更復雜的程序,以便與foldmethod=expr
一起使用。例如,我使用定義爲here的vim函數來定義ruby代碼應該如何摺疊。它自動定義模塊,類和方法的摺疊以及緊接在它們之前的任何註釋行;它支持摺疊其他部分的標準摺疊標記。它與foldexpr=ruby#MethodFold(v:lnum)
一起使用。
通過做:help fold-expr
可以找到關於摺疊表達式應該如何表現的更多信息。還有一個不錯的vimcast about that。
設置foldmethod
到indent
基於縮進級別將摺疊線, 不管行是否是一個註釋或代碼。
:set foldmethod=indent
:help fold-indent