【发布时间】:2014-02-13 17:59:49
【问题描述】:
我在控制台模式下使用 emacs(即没有鼠标,一帧),具有固定的四个窗口配置:
+------+------+ |赢|赢| | 1 | 3 | +------+------+ |赢|赢| | 2 | 4 | +------+------+窗口 3 是我的主要编辑窗口,我大部分时间都在那个窗口中度过。 Windows 1 和 2 一直保持相同的两个缓冲区,我很少更改这些窗口,因为缓冲区会自动更新,并且它们包含只读信息。 Windows 4 是我的附属窗口,很高兴大多数打开新缓冲区的 emacs 命令(例如 grep、编译命令等)总是在窗口 4 中显示新缓冲区。这让生活变得非常轻松,因为我绑定了 F12 直接在窗口 3 和窗口 4 以及后面。
坏家伙是 psvn.el。 svn-status 缓冲区总是根据需要在窗口 3 中打开。
但是所有其他缓冲区(*svn-diff*、*svn-log*、...)在窗口 1、2 或 3 中随机打开,我永远无法预测它们会在哪个窗口中打开。有时,甚至同时在其中两个窗口上显示相同的缓冲区,这让我抓狂!
我如何告诉 emacs/psvn 停止这样做?我尝试了所有常用的措施(调整相同的窗口缓冲区名称、拆分高度阈值、拆分宽度阈值……),但到目前为止没有任何效果:-(
请不要有涉及 ecb 的解决方案。
【问题讨论】:
-
要完全控制某些缓冲区的显示方式,您可以进入
psvn.el的源代码并使用display-buffer系列函数对其进行修改(或创建新函数)。以下是两个最近线程的链接,我和其他线程参与者给出了如何在给定窗口中显示特定缓冲区的示例(或者如果它不存在则创建一个新窗口):stackoverflow.com/a/21544307/2112489 和 stackoverflow.com/a/21591259/2112489其他选择,但从源头上扼杀萌芽是我处理事情的首选方式。 -
例如,问题源代码的作者似乎对
pop-to-buffer有个人偏好——您可以将其替换为您自己的显示缓冲区功能。您可能需要调整代码的其他部分,但这是一般的想法。