1. ホーム
  2. javascript

Vimで自動折りたたみを有効にするには?

2023-08-16 20:49:01

質問

Vim で自動折りたたみを有効にするにはどうすればよいですか。 set foldmethod=syntax はあまり何もしないようです。

どのように解決するのですか?

構文に基づく折り返しを許可するには、次のようなものを .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 を使わない人は文書を編集するときにマークを維持することはありません。 手動での字下げは、誰かがソース管理でコードを編集し、すべての字下げが間違った場所に配置されるまでは、とてもうまくいきます。

もっと読む

  1. 参照 :help fold-methods を参照してください。
  2. 参照 :help folding を参照し、折り目を操作するためのキーボードコマンドを学んでください。
  3. 参照 :help folds を参照してください。