Hack #170: テキストを折り畳む – 基本編
Posted at 2010/08/28ツイート
長いテキストやソースコードを閲覧したり編集する場合、全体の俯瞰が知りたかったり、必要のない部分を無視したいことがあります。 こういった場合、Vim の折り畳み機能が便利です。
本 Hack では何回かに分けて折り畳み機能について解説します。
Folding (折り畳み)
Vim にはテキストを折り畳むための Folding と呼ばれる機能があり、これを使うことで複数行を 1 行にまとめて表示することができます。まとめられた行には要約が表示されます。 折り畳み機能を使うことで、テキストをセクション単位や関数単位などで折り畳んで簡潔に表示することができます。
折り畳まれた行は zo で開き、 zc で閉じることができます。詳細は操作編で解説します。
折り畳みレベル
折り畳みは入れ子にすることができます。これにより、構造化された文書やソースコードを階層ごとに折り畳むことができます。 各行には折り畳みレベルというものがあり、入れ子は実際にはこれによって表現されています。折り畳みレベル 0 が、折り畳みがない状態です。
階層化された折り畳みは zR で全て開き、zM で全て閉じることができます。
折り畳みの種類
折り畳みには、以下の 6 つの種類があります。’foldmethod’ オプションに対して以下のいずれかを設定します。
値 | 概要 |
---|---|
manual | 手動で折り畳みを作成します。 |
marker | 特定の印により折り畳みを作成します。 |
indent | インデントによって折り畳みを作成します。 |
expr | 式を使って柔軟に折り畳みを作成します。 |
syntax | syntax での指定により折り畳みを作成します。 |
diff | diff の際に変更されていないテキストを折り畳みます。 |
‘foldmethod’ オプションはウィンドウローカルなので、同じバッファを別のウィンドウで別の方法で折り畳むこともできます。
折り畳みの作成と削除
基本編ということで、最後に折り畳みの作成/削除の方法を簡単に紹介しておきます。
‘foldmethod’ が “manual” の場合、自分で折り畳みを作成することになります。折り畳みの作成は zf{motion} か Visual-mode で範囲を選択して zf 、もしくは :{range}fold
コマンドで行います。繰り返して実行することで、折り畳みレベルを深くすることができます。
zd でカーソル位置にある折り畳みを削除できます。また、zD でカーソル位置にある折り畳みを再帰的に全て削除できます。
thincaもどる
blog comments powered by Disqus