启用缩窄后,缓冲区其余部分会被隐藏,仿佛不存在一样。这一特性很实用,例如你只想替换缓冲区某一部分中的某个单词,而不影响其他部分:只需缩窄到目标区域,替换操作就只会在该范围内执行。搜索也只会在缩窄区域内生效,因此在修复文档某部分时,可通过缩窄避免误搜到无关内容。
(narrow-to-region 的按键绑定为 C-x n n。)
不过,缩窄会隐藏缓冲区其余内容,若用户误触发缩窄,可能误以为文件部分内容被删除。此外,undo 命令(通常绑定为 C-x u)不会关闭缩窄(也不应关闭),因此不了解 widen 命令可恢复显示全部缓冲区的用户,常会陷入慌乱。
(widen 的按键绑定为 C-x n w。)
缩窄对 Lisp 解释器和人类用户同样有用。很多 Emacs Lisp 函数只需要处理缓冲区的一部分;反之,有些函数则需要处理已缩窄缓冲区的全部内容。例如 what-line 函数会先取消缓冲区缩窄(如果存在),执行完成后再恢复原有缩窄状态。而 count-lines 函数则会利用缩窄限制操作范围,之后再恢复原状。