Outlineモードには、アウトライン構造にもとづいてバッファーの一部を一時的に非表示にしたり可視にするコマンドが、いくつかあります。これらのコマンドはアンドゥ可能ではありません。コマンドの効果は単純にアンドゥメカニズムに記録される訳ではありませんが、それらを実行した直後に限りアンドゥできます(Undo(取り消し)を参照してください)。
これらのコマンドは、カレントのヘッダー行に作用します。ポイントがヘッダー行にある場合、それがカレントのヘッダー行です。ポイントがボディー行にある場合、カレントヘッダー行は一番近くの前にあるヘッダー行です。
カレントヘッダー行のボディーを非表示にします(outline-hide-entry
)。
カレントヘッダー行のボディーを可視にします(outline-show-entry
)。
カレントヘッダー行の配下のすべて(ヘッダー行自身は含まれません)を非表示にします(outline-hide-subtree
)。
カレントヘッダー行の配下のすべて(ボディー、サブヘッダーおよびそのボディーを含む)を可視にします(outline-show-subtree
)。
カレントヘッダー行のボディーと、すべてのサブヘッダーを非表示にします(outline-hide-leaves
)。
カレントヘッダー行のサブヘッダーをすべてのレベルで可視にします(outline-show-branches
)。
カレントヘッダー行の一番近いサブヘッダー(1レベル下)を可視にします(outline-show-children
)。
バッファーのすべてのボディー行を非表示にします(outline-hide-body
)。
バッファーのすべての行を可視にします(outline-show-all
)。
上位nレベルのヘッダー行を除き、すべてを非表示にします(outline-hide-sublevels
)。
ポイントのあるヘッダー行またはボディー行と、そこから最上位までのレベルにあるヘッダーを除き、すべてを非表示にします(outline-hide-other
)。
ヘッダーがregexpにマッチしたらボディーを非表示にします(outline-hide-by-heading-regexp
)。
ヘッダーがregexpにマッチしたらボディーを表示します(outline-show-by-heading-regexp
)。
これらのコマンドのうち、カレントヘッダー行に直接続くボディー行を非表示にするC-c C-c
(outline-hide-entry
)と、それらを可視にするC-c C-e
(outline-show-entry
)が一番簡単なコマンドです。サブヘッダーとそれらのボディーは影響を受けません。
コマンドC-c C-d (outline-hide-subtree
)およびC-c C-s
(outline-show-subtree
)は、より強力です。これらはカレントヘッダー行のサブツリー —
つまりカレントヘッダー行のボディーと、すべての直接または間接のサブヘッダーとそのボディー — に適用されます。
コマンドC-c C-l
(outline-hide-leaves
)は、カレントヘッダー行のボディーと、サブツリーのボディーをすべて非表示にします(サブヘッダー自身は表示されます)。コマンドC-c
C-k (outline-show-branches
)は、(たとえばC-c
C-d)などで)前に非表示にされたサブヘッダーを可視にします。コマンドC-c C-i
(outline-show-children
)はこれの穏やかなバージョンで、直接的なサブヘッダー(たとえば1レベル下のサブヘッダー)を可視にします。
コマンドC-c C-o
(outline-hide-other
)は、ポイントのあるエントリーと、その祖先(アウトライン構造上でそこから最上位レベルに至るまでのヘッダー)、およびトップレベルのヘッダーを除き、すべてを非表示にします。このコマンドは、そのバッファーの最初のヘッダーの前のボディー行も表示します。
コマンドC-c / h
(outline-hide-by-heading-regexp
)は正規表現の入力を求めて、その正規表現にマッチするヘッダーのすべてのボディー行を非表示にします。コマンドC-c
/ sも同じように正規表現の入力を求めますが、こちらはマッチするヘッダーのすべてのボディー行を表示します。
残りのコマンドは、バッファー全体に作用するコマンドです。C-c C-t
(outline-hide-body
)はすべてのボディー行を非表示にするので、アウトライン構造だけを見ることができます(特別な例外として、ファイルの最初にあるヘッダー行より前の行は、技術的に言うとボディー行ですが、これらは非表示になりません)。C-c
C-a (outline-show-all
)はすべての行を可視にします。C-c C-q
(outline-hide-sublevels
)は、カレントのヘッダー行(ポイントがヘッダー行にないときのデフォルトは1行目)の位置、またはその上にある最上位のヘッダーを除き、すべてを非表示にします。数引数nを指定すると、上位nレベルのヘッダー行を除き、すべてを非表示にします。この場合、上位nレベルと、最初のヘッダーの前のボディー行が表示されることに注意してください。
Outlineは各セクションおよびバッファー全体の可視性を循環させるために便利なコマンドも提供しています。ヘッダーでTAB
(outline-cycle
)とタイプすることでカレントセクションにたいして“hide
all”、“subheadings”、“show all”の状態間を巡回できます。S-TAB
(outline-cycle-buffer
)とタイプすれば“only top-level headings”、“all
headings and subheadings”、“show all”の状態間を巡回できます。
インクリメンタル検索が、Outlineモードにより非表示にされたテキストを検索したとき、検索された部分のバッファーは可視になります。その位置で検索を抜けると、テキストは可視のまま残ります。アクティブなインクリメンタル検索が、非表示のテキストにマッチするかを切り替えるには、M-s
iとタイプします。将来の検索にたいしてデフォルトを変更するには、オプションsearch-invisible
をカスタマイズします(このオプションはquery-replace
、および関連する機能が非表示のテキストを扱う方法に影響を与えます。問い合わせつき置換を参照してください)。バッファーローカルなマイナーモードRevealモード(M-x
reveal-mode)を使用して、操作にしたがって自動的にテキストを可視にもできます。
outline-default-state
はOutlineモードがオンに切り替わった後にどのヘッダーを可視にするかを制御する変数です。非nil
なら一部のヘッダーはアウトライン化されます。数値ならそれに相当するレベルを含めて、そのレベルヘッダーだけを表示、outline-show-all
ならバッファーのすべてのテキストを表示、outline-show-only-headings
ならレベルとは無関係にヘッダーだけを表示、値がlambda関数か関数名の場合には、モードが有効になった後にヘッダーの可視性の切り替えを担う関数として、その関数が引数なしで呼び出されることになります。