2013-03-01 65 views
0

Vim可以摺疊Ruby代碼,但不能評論。如何在Vim中同時添加代碼和評論?

在.vimrc中添加此項以將foldmethod更改爲註釋後,我無法再摺疊代碼。

autocmd FileType ruby,eruby 
    \ set foldmethod=expr | 
    \ set foldexpr=getline(v:lnum)=~'^\\s*#' 

如何配置Vim以同時摺疊註釋和代碼?

回答

2

在我最近的Vim 7.3.823快照中,$VIMRUNTIME/syntax/ruby.vim(2009年12月2日版)對Ruby構造和註釋塊都有摺疊。

只要把

:let g:ruby_fold = 1 

~/.vimrc。 (並確保你沒有一個名爲ruby_no_comment_fold變量)。

0

您可以使用foldmethod=marker並添加{{{/}}}標記(或您選擇的其他標記)來指示摺疊開始和結束的位置。

您還可以修改定義ruby語法突出顯示的文件,以調整其認爲適合使用foldmethod=syntax摺疊的內容。

第三種選擇是開發一個更復雜的程序,以便與foldmethod=expr一起使用。例如,我使用定義爲here的vim函數來定義ruby代碼應該如何摺疊。它自動定義模塊,類和方法的摺疊以及緊接在它們之前的任何註釋行;它支持摺疊其他部分的標準摺疊標記。它與foldexpr=ruby#MethodFold(v:lnum)一起使用。

通過做:help fold-expr可以找到關於摺疊表達式應該如何表現的更多信息。還有一個不錯的vimcast about that

0

設置foldmethodindent基於縮進級別將摺疊線, 不管行是否是一個註釋或代碼。

:set foldmethod=indent 
:help fold-indent 
0

我認爲你正在尋找

set foldignore=# 

如果你想摺疊塊註釋(如/ * .... * /多線),看我的其他職位in vi.stackechange