関数を自動的に折りたたむにはどうすればよいですか?


12

関数宣言の構文に基づいてVimの折りたたみ関数を作成する方法はありますか?

たとえば、vimに次のような関数を渡させます。

def foobar(foo,bar):
  if foo > bar:
    print "foo"
  elif foo < bar:
    print "bar"
  elif foo == bar:
    print "foobar"

これに:

+----- 7 lines: def foobar(foo,bar): -------------------------------------------------------------

これを実現するために.vimrcファイルに使用できるコマンドまたは関数のセットはありますか?

回答:


12

コードブロックの正しいインデントに依存するPythonでの例を考えると、折りたたみはそれに基づいて行うだけで十分です。

:set foldmethod=indent

利用可能なさまざまな折りたたみの詳細については、:help foldmethodを参照してください


7

承知しました:

set foldmethod=syntax

次に、を使用zcして、折り目を閉じる、zo開く、またはza切り替えることができます。

残念ながら、VimにはデフォルトでPythonの折りたたみ情報が含まれていません。ただし、多くの外部リソースの1つを使用できます。


3
これが機能するためには、使用している構文ファイルでを使用する必要がありますsyn-fold。vim74の私のインストールでは、構文ファイルの約10%だけがそれを使用しています。
jalanb 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.