【发布时间】:2015-07-01 14:35:49
【问题描述】:
谁能帮我理解列表缓冲区(又名 Ctrlx - Ctrlb)的行为在 emacs 25 中?
behavior I'm used to seeing 是它在另一个 Emacs 窗口(虚拟 Emacs 窗口)中打开缓冲区列表,并在必要时拆分出第二个窗口来执行此操作。在某些版本中,它使用哪个其他窗口并不总是非常确定(如果我有超过 2 个),但我至少可以指望它不使用光标所在的那个。
我最近安装了 25.0.50.1 来解决远程文件打开错误(有效!),但现在它并不总是这样做。很多时候,它会在我的光标所在的同一个窗口中打开缓冲区列表。它通常以以前的方式工作。我想不出它选择这样做的任何韵律或原因。
有人可以告诉我它现在使用的算法吗?当我无法预测哪个窗口会被替换时,它几乎不可能管理多个 emacs 窗口以供参考查看。
【问题讨论】:
-
得到答案后,如果您觉得文档或行为不清楚或您更喜欢什么,请考虑提交错误/增强请求:
M-x report-emacs-bug。 -
如果您有兴趣通过创建自己的函数使其按照您想要的方式工作,有几个线程 [可通过谷歌搜索获得] 讨论如何使其显示左/右/上/下.然而,大多数人似乎更喜欢建议或显示缓冲区列表来解决现有函数的默认行为,而不是简单地创建新函数——这些方法可能也有一些线程,但我没有检查.
-
@lawlist - 在我决定更改默认行为之前,我想确切地知道当前的默认行为是什么。
-
问题实际上是关于确定函数
display-buffer的默认行为。我建议您阅读该函数的文档字符串,可以通过键入:M-x describe-function RET display-buffer RET来查看。函数list-buffers是一 (1) 行代码,不包括 doc-string 和交互式语句 - 即(display-buffer (list-buffers-noselect arg))。 Noselect 是不言自明的——即,生成一个包含你习惯看到的成分的缓冲区,然后它就坐在那里等待显示——例如,display-buffer。 -
display-buffer和display-buffer-alist的文档,以及他们试图描述和解释的行为,确实“远远超出了我的 [原文如此] 凡人感知(和理解)。FWIW,我和你在一起 - 我也从来无法理解。