Answers:
这正是库Narrow Indirect(narrow-indirect.el
)的目的。
它为您提供了缩小命令,这些命令创建了一个间接缓冲区,该间接缓冲区是当前缓冲区的副本,并且缩小到其特定部分。您可以缩小到当前定义,活动区域或当前页面。建议的键绑定:
(define-key ctl-x-4-map "nd" 'ni-narrow-to-defun-other-window)
(define-key ctl-x-4-map "nn" 'ni-narrow-to-region-other-window)
(define-key ctl-x-4-map "np" 'ni-narrow-to-page-other-window)
对于它创建的间接缓冲区,它提供了两种方法来区分间接缓冲区和非间接缓冲区:
间接缩小的缓冲区的缓冲区名称以可以使用option设置的前缀开头ni-buf-name-prefix
。默认值为I-
。
间接缩小的缓冲区的名称在模式行中使用face ni-mode-line-buffer-id
而不是face 突出显示mode-line-buffer-id
。(要关闭此功能,只需将前者自定义为与后者相同即可。)
这样的间接缓冲区为您提供了一部分缓冲区甚至整个缓冲区(使用C-x h C-x 4 n n
)的不同视图。它始终具有相同的文本和文本属性,但是在其他方面则非常独立。
特别是,您可以杀死一个间接缓冲区而不影响其基本缓冲区。您可能想要杀死间接变窄的缓冲区,而不是扩大它们。
请参阅Emacs手册,节点间接缓冲区。
org-indirect-buffer-display
为来更改new-frame
。