Vimで自動折りたたみを有効にするにはどうすればよいですか? set foldmethod=syntax何もしていないようです。
4 に答える
構文に基づいて折りたたむことができるようにするには、次のようなものを次のように追加します.vimrc。
set foldmethod=syntax
set foldlevelstart=1
let javaScript_fold=1 " JavaScript
let perl_fold=1 " Perl
let php_folding=1 " PHP
let r_syntax_folding=1 " R
let ruby_fold=1 " Ruby
let sh_fold_enabled=1 " sh
let vimsyn_folding='af' " Vim script
let xml_syntax_folding=1 " XML
構文ベースの折りたたみは、$VIM/syntaxまたはにある言語の構文ファイルで定義されます/usr/share/vim/vimXX/syntax/。ただし、一部の言語には、構文ファイルにフォールディングルールが組み込まれていません。たとえば、Python。これらの言語の場合、フォールドするものをhttp://vim.sf.netからダウンロードする必要があります。それ以外の場合は、インデントに基づいて折り目を使用する必要があります。これを効果的に行うには、.vimrcファイルに次のものを追加することをお勧めします。
set foldmethod=indent
set foldnestmax=2
他の種類の折りたたみ
折り目には6種類あります。
manual manually define folds
indent more indent means a higher fold level
expr specify an expression to define folds
syntax folds defined by syntax highlighting
diff folds for unchanged text
marker folds defined by markers in the text
個人的には、構文の折り畳みのみを使用します。通常、私はメソッドを折りたたむだけで、すべてのインデントレベルを折りたたむのではありません。一貫性のないインデントと奇妙な形式のレガシーコードが機能していると、インデントの折りたたみが困難または不可能になることがよくあります。ドキュメントにマークを追加するのは面倒で、Vimを使用しない人はドキュメントを編集するときにマークを維持しません。手動での折り畳みは、誰かがソース管理でコードを編集し、すべての折り畳みが間違った場所に配置されるまで、うまく機能します。
もっと読む
:help fold-methodsさまざまな折り方の詳細については、を参照してください。:help folding折り目を操作するためのキーボードコマンドについては、を参照してください。:help folds折りたたみのトピック全体のヘルプについては、を参照してください。
JavaScriptの折りたたみも私にはうまくいきませんでした。構文=javaScript(大文字のS)を設定すると、突然機能することがわかりました。
ここですべてのソリューションを試しましたが、NeoVim v0.3.1で機能するものはありませんでした。vim -javascriptプラグインが見つかり、折りたたみが機能し始めるまでは。
新しいバージョンのVimでフォールディングを有効にする方法が変更されました(私はvim 7.4を使用しています)。次に、(Linuxで)ファイルを作成し、~/.vim/ftplugin/javascript.vimEricJohnsonの回答で説明されているようにコード折り畳み命令を追加する必要があります。特定のファイルタイプのファイルタイプの検出と読み込みプラグインは、これを次の場所に配置して有効にする必要があります.vimrc。
filetype plugin on