ナローイング(Narrowing)とはバッファーのある範囲にフォーカスを置き、他の部分を一時的にアクセス不能にすることを意味します。扱うことのできる範囲のことを、アクセス可能範囲(accessible portion)と呼びます。ナローイングを取り消すと、バッファー全体に再びアクセスできるようになります。これをワイドニング(widening)と呼びます。バッファーにたいして、ナローイングにより境界を設けることを、バッファーの制限(restriction)と呼びます。
ナローイングにより、他の部分に気を取られずに、1つのサブルーチンやパラグラフに集中することが容易になります。ナローイングは、置換コマンドやキーボードマクロの繰り返しにより操作される範囲を制限するためにも使われます。
ポイントとマークの間にナローイングします(narrow-to-region
)。
バッファー全体をワイドニングして、再びアクセス可能にします(widen
)。
現在のページにナローイングします(narrow-to-page
)。
現在のdefunにナローイングします(narrow-to-defun
)。
バッファーをナローイングしているときは、表示されている範囲がすべてです。残りの部分を見ることはできず、移動もできず(移動コマンドによりアクセス可能範囲の外に移動することはできません)、変更もできません。しかし残りの部分がなくなったわけではないので、ファイルを保存するとアクセス不能範囲のテキストもすべて保存されます。ナローイングが有効なときは、モードラインに‘Narrow’という単語が表示されます。
主要なナローイングコマンドは、C-x n n
(narrow-to-region
)です。これは現在のバッファーを制限するので、現在のリージョンだけがアクセス可能になり、リージョンの前後のすべてのテキストはアクセス不能になります。ポイントとマークは変化しません。
かわりにC-x n p
(narrow-to-page
)を使うと、現在のページにナローイングされます。ページの定義については、ページを参照してください。C-x
n d
(narrow-to-defun
)は、ポイントを含むdefunにナローイングします(トップレベルの定義、またはdefunを参照してください)。
ナローイングを取り消す方法は、C-x n w
(widen
)です。これにより再びバッファーのテキストすべてにアクセス可能になります。
バッファーのどの範囲にナローイングされているかは、C-x =コマンドを使って情報を得ることができます。カーソル位置の情報を参照してください。
ナローイングは、それを理解していないユーザーを容易に混乱させるので、通常narrow-to-region
コマンドは無効になっています。このコマンドを使おうとすると、Emacsは確認を求め、有効にするオプションを提供します。このコマンドを有効にすると、それ以降は確認を求められなくなります。コマンドの無効化を参照してください。