GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/Narrowing-advantages.html ・ emacs-doc.conao3.com

絞り込むメリット

ナローイングを行うと、バッファの残りの部分は、あたかも存在しないかのように非表示になります。これは、例えばバッファのある箇所では単語を置換したいが、別の箇所ではしたくない場合に有効です。置換したい箇所をナローイングすれば、置換処理はそのセクションのみで行われ、バッファの残りの部分には適用されません。検索はナローイングされた領域内でのみ機能し、領域外では機能しません。そのため、ドキュメントの一部を修正する場合、必要な領域だけをナローイングすることで、修正不要な箇所を誤って見つけてしまうのを防ぐことができます。(narrow-to-region のキーバインドは C-x n n です。)

しかし、ナローイングを行うとバッファの残りの部分が非表示になるため、意図せずナローイングを発動させてファイルの一部を削除してしまったと思い、不安に陥る人がいます。さらに、undoコマンド(通常はC-x uに割り当てられています)はナローイングを解除しません(そもそも解除すべきでもありません)。そのため、widenコマンドでバッファの残りを再び表示に戻せることを知らなければ、かなり途方に暮れてしまう可能性があります。(widenのキーバインドはC-x n wです。)

ナローイングは、人間にとってと同様にLispインタプリタにとっても有用です。多くの場合、Emacs Lisp関数はバッファの一部のみで動作するように設計されています。あるいは逆に、ナローイングされたバッファ全体に対して動作する必要がある場合もあります。例えばwhat-line関数は、バッファにナローイングが設定されている場合にそれを解除し、処理が完了するとナローイングを元の状態に戻します。一方、count-lines関数はナローイングを利用して、自身が関心を持つバッファのその部分のみに動作範囲を限定し、その後元の状態に戻します。