vim-users.jp

Hack #174: テキストを折り畳む – 設定編

Posted at 2010/10/03
このエントリーをはてなブックマークに追加

折り畳みには様々な要素があり、それらを制御するためのオプションが多くあります。ここでは、それらのオプションの一部を紹介します。 なお、ここで紹介している fold 関係のオプションは全てウィンドウローカルです。

'foldmethod'

折り畳みの種類を指定します。

最も重要なオプションです。これによりバッファがどのように折り畳まれるかが決まります。 値に関しては Hack #170: テキストを折り畳む – 基本編 で紹介しましたが、再掲します。

概要
manual 手動で折り畳みを作成します。
marker 特定の印により折り畳みを作成します。
indent インデントによって折り畳みを作成します。
expr 式を使って柔軟に折り畳みを作成します。
syntax syntax での指定により折り畳みを作成します。
diff diff の際に変更されていないテキストを折り畳みます。

これらの個々の詳細は今後の Hacks で取り扱う予定です。

'foldenable'

真偽値のオプションです。このオプションが off の時、全ての折り畳みは無効化されます。

これは折り畳みの使用/不使用を素早く切り替えるのに便利です。例えば、いくつかの折り畳みを折り畳んでいる時に、 全てを表示するのに実際に折り畳みを開いてしまうと元の状態に戻すのが大変ですが、このオプションを切り替えることで一時的に折り畳みを開いた状態にできます。

'foldlevel'

このオプションを設定すると、ウィンドウ全体の折り畳みが指定レベルまで開いた状態になります。

つまり、0 を指定すると全て閉じた状態になります。99 などの大きな数値を指定すると全て開いた状態になります。

このオプションで折り畳み状態を変更した後でも手動で各々の折り畳みの状態の操作が可能です。

'foldcolumn'

指定した幅だけウィンドウの左端にカラムを追加して、そこに折り畳み情報を表示します。

setlocal foldcolumn=4 を設定した例

カラムの幅が狭い場合は入れ子のレベルの数字が表示されます。

'foldopen'

折り畳まれている行にカーソルが移動した際、このオプションで指定した種類の移動だった場合は折り畳みを開きます。 以下の種類があります。カンマ区切りで複数指定できます。

キーワード 種類
all あらゆる移動(以下にないものも含む)  
block ブロック単位の移動 ( { [[ [{
hor 水平移動 l w fx
insert Insert modeの全てのコマンド  
jump 大きな移動 G gg
mark マークへのジャンプ 'm <C-o> <C-i>
percent 対応するカッコへの移動 %
quickfix quickfix 関連による移動 :cnext :crewind :make
search 検索による移動 / n * gd
tag タグへのジャンプ :tag <C-]> <C-t>
undo アンドゥ/リドゥ u <C-r>

オペレータとして使った場合にはこのオプションは使われません。

'foldclose'

“all” を指定した場合、カーソルが折り畳みから出るとその折り畳みが 'foldlevel' より大きかった場合は自動で閉じます。

つまり、'foldlevel' より大きなレベルの折り畳みはカーソルがある位置のもの以外全て閉じられることになります。

'foldminlines'

このオプションで設定した行数より少ない行の折り畳みは表示上折り畳まれません。 折り畳まれないのは表示上だけで、折り畳まれているかの状態は保持されています。

thinca

もどる
blog comments powered by Disqus