VimはRubyコードを折りたたむことができますが、コメントはできません。
これを.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 Dec 2) には、Ruby コンストラクトとコメント ブロックの折りたたみの両方があります。
置くだけ
:let g:ruby_fold = 1
に~/.vimrc
。(そして、という名前の変数がないことを確認してくださいruby_no_comment_fold
。)
に設定foldmethod
するindent
と、行がコメントかコードかに関係なく、インデント レベルに基づいて行が折り畳まれます。
:set foldmethod=indent
:help fold-indent
/マーカー (または選択した他のマーカー) を使用foldmethod=marker
して追加し、折り目の開始位置と終了位置を示すことができます。{{{
}}}
ルビ構文の強調表示を定義するファイルを変更して、 での折りたたみに適していると見なされるものを調整することもできますfoldmethod=syntax
。
3 番目のオプションは、 で使用するためのより複雑なルーチンを開発することfoldmethod=expr
です。たとえば、ここで定義した vim 関数を使用して、Ruby コードを折り畳む方法を定義します。モジュール、クラス、メソッドの折り畳みを、それらの直前のコメント行とともに自動的に定義します。また、他のセクションを折りたたむための標準の折りたたみマーカーをサポートしています。で慣れfoldexpr=ruby#MethodFold(v:lnum)
ます。
フォールド式がどのように動作するかについての詳細は、 を実行して見つけることができます:help fold-expr
。それについての素敵なvimcastもあります。