Emacsには、指定した列数を超えてインデントされた行を非表示にする機能があります。これを利用して、プログラムの一部を俯瞰することができます。
現在のバッファ内の行を非表示にするには、数値引数 n を指定して C-x
$ (set-selective-display) と入力します。すると、少なくとも
n
列のインデントがある行が画面から消えます。それらの行が存在することを示す唯一の手がかりは、1つ以上の非表示行が続く各表示行の末尾に、3つのドット
(‘…’) が表示されることです。
コマンド C-n と C-p は、非表示の線をあたかも存在しないかのように移動します。
非表示の行はバッファ内に依然として存在しており、ほとんどの編集コマンドでは通常通りに認識されるため、ポイントが非表示テキストの途中に位置することがあります。この場合、カーソルは前の行の末尾、3つのドットの後に表示されます。ポイントが表示行の末尾、つまりその行を終了させる改行記号の前に位置している場合は、カーソルは3つのドットの前に表示されます。
すべての行を再び表示するには、引数なしで C-x $ と入力してください。
変数 selective-display-ellipses に nil
を設定すると、非表示行に先行する行の末尾に3つのドットが表示されなくなります。これにより、非表示行を示す表示がなくなります。この変数は、設定時に自動的にローカル変数となります。
バッファ内のテキストの一部を非表示にする別の方法については、アウトラインモードも参照してください。