Vim の折りたたみ (folding) 機能を使用すると、特定の行を折りたたんで表示する(一時的に非表示にする)ことができます。
折りたたみ機能によって、どのような範囲を折りたたむかは、foldmethod
というオプションで制御されています。
:set foldmethod=manual (デフォルト)
としておくと、任意の選択範囲を折りたたみ領域として扱うことができるようになります。
1. Visual mode (Shift-v) で領域選択
2. zf
zf /string
一度 zf
コマンドによって折りたたんだ領域は、zo
で展開、zc
で折りたたみを行えるようになります。
折りたたみの単位の設定を indent
にすると、各種折りたたみコマンドの対象がインデント単位になります。
:set foldmethod=indent
zc -- 折りたたみ (Close one fold under the cursor)
zo -- 展開(一段階)(Open one fold under the cursor)
zO -- 展開(すべて)(Open all folds under the cursor recursively)
zm -- 折りたたみ(一段階) (Fold more)
zM -- 折りたたみ(すべて) (Close all folds)
zr -- 展開(一段階) (Reduce folding)
zR -- 展開(すべて) (Open all folds)
zj -- move to the next fold
zk -- move to the previous fold
折りたたみ機能に関する設定は、foldXXXXX
という名前のオプションを使って行います。
set foldmethod=indent "折りたたみ範囲の判断基準(デフォルト: manual)
set foldlevel=2 "ファイルを開いたときにデフォルトで折りたたむレベル
set foldcolumn=3 "左端に折りたたみ状態を表示する領域を追加する
折りたたみ領域を決める foldmethod
オプションには、下記のような値を設定することができます。
manual
– 自分で範囲選択して折りたたみindent
– インデント範囲marker
– {{{ と }}} で囲まれた範囲expr
– foldexpr による折りたたみレベル指定syntax
– 現在の syntax に応じた折りたたみ折りたたみ状態を保存しておくと、ファイルを閉じて、再度開いたときにその折りたたみ状態に復帰させることができます。
:mkview -- Fold 状態を保存する
:loadview -- Fold 状態を復帰する
ファイルを閉じるとき、開くときときに、自動的に折りたたみ状態を保存・復帰するには、~/.vimrc
に以下のように設定しておきます。
au BufWinLeave * mkview
au BufWinEnter * silent loadview
:help fold.txt
とすると、折りたたみ機能(Folding機能)についてのヘルプを参照することができます。