Emacs:是否可以将一个特定窗口设置为始终用作"其他窗口"?

Mat*_*att 5 emacs

有许多有用的emacs命令可以在"其他窗口"中执行操作(比如C-x C-b查看缓冲区列表,或C-h a查看可用命令,或许多其他命令).

我的问题:在一帧中使用一些精心安排的窗口,每个都显示特定的内容似乎不太好.

无论何时我使用其中一个"其他窗口"命令,它都会替换其他窗口的内容,其中(1)可能太窄而无法清楚地显示正在显示的信息,并且(2)可能需要手动"清理"然后,通过将其设置回正确的缓冲区.(最好不要在执行此操作时检查缓冲区列表,否则您将陷入另一个窗口!)

(即使从同一窗口发出命令,Emacs也不会总是使用相同的"其他窗口".例如,C-x C-b输出可能会进入一个"其他"窗口,同时C-h a在不同的"其他"窗口中显示其结果.同样,C-M-v有时会滚动与输出刚刚出现的窗口不同的"其他"窗口.)

我想要一种方法来解决或解决这个问题,例如:

  1. 我真的希望能够指定一个特定的窗口,始终用作该帧中任何窗口的"其他窗口".

  2. 如果失败了,也许有一种方法可以重新排列窗口顺序和/或使用不可见的窗口(如果存在的话)通过执行大量的幕后窗口改组来获得解决方案1的效果,可能需要额外的命令来在写入"其他窗口"的命令之前或之后输入.

  3. 如果失败了,我想要一个命令来撤消任何窗口中最近的缓冲区更改,因此无论使用什么窗口都会回到它在使用之前显示的内容.

(目前我使用workgroups.el并使用单独的工作组来检查文档,但这显然不是最理想的."更新"工作组没有实现解决方案3,因为它似乎只是在它是常规文件时才更改缓冲区.)

编辑:我看到这个问题与这个类似的问题非常相似,但这个问题没有得到它正在寻找的答案.由于理想的解决方案可能不存在,我也明确对解决方案感兴趣.

小智 2

如果这些失败,我想要一个命令来撤消任何窗口中最近的缓冲区更改,因此无论使用什么窗口都会返回到使用之前所显示的内容。

一个可能的解决方案是使用winner-mode. 通过添加激活它

(winner-mode 1)
Run Code Online (Sandbox Code Playgroud)

它提供了两个命令winner-undowinner-redo分别表示撤消和重做窗口配置。

另外,既然你提到workgroups.el尝试一下workgroups2,workgroups.el 的一个分支。它提供了类似的命令(wg-undo-wconfig-changewg-redo-wconfig-change)来恢复窗口配置