昔、MultiEditというエディタがありました。すべての強力なVIMにはない機能があります。マルチエディットでは、ホットキーを押すと、目次(別名、圧縮モード、別名アウトライン)のようなものが表示され、現在のファイルのすべての関数の1行目(Cソースとします)しか表示されませんでした。次に、カーソルを必要な機能に移動し、Enterキーを押すと、モードが通常に切り替わり、必要な機能が実行されます。1つのファイルに多くの関数を入れるのが好きな人にとって非常に便利です。この機能の使い方は非常に簡単でした。タイトル行を選択するための正規表現を入力するための1つの構成オプションと、モード切り替えのための1つのホットキーです。
VIMには折りたたみがあります。しかし、これは異なります。折りたたむと、ファイルの一部が非表示になり、folded-lines-indicatorが表示されます。table-of-content-displayの折り畳みに何を非表示にするかを指定することは、はるかに困難です。折り畳みをタイトル行で開始し、次のタイトル行の前で終了する必要があります。これは、タイトルを選択するための単純な正規表現よりも複雑です。
私はこの機能がとても欲しかったので、VIMをあまり知らなくても、このマルチエディットの動作をエミュレートするためにVIMマクロを作成しました。VIMフォールディングモジュールの複雑さを理解するよりも、新しい言語を学び、マクロを書く方が簡単だったので、私はそれを部分的に書きました。残念ながら、VIMをアップグレードした後、このマクロは機能しなくなりました(無限ループ?)。ずっと前に書いたのですが、VIMについてほとんど知らなかったことがすべて忘れられてしまい、今は修正できませんでした。(編集:スクリプトを修正しました。リンクを提供してくれた@romainlに感謝します)。
私の質問は、VIMでの表示のようなこの目次を取得する方法です。