Emacs:定义命令输出的目标窗口

时间:2013-10-18 20:59:35

标签: emacs elisp

我已经厌倦了emacs用它的输出来破坏我的窗户,并且不可预测地在那里。我想在emacs框架中有几个窗口,并且每个窗口仅用于特定目的。例如,

ECB panels |  Editor 1 | Editor 2 |  Bookmarks+
------------------------------------------------
"Messages" (output buffer)

因此,当我运行M-x compile时,我希望输出始终进入消息。类似地,当我运行M-x magit-status时,我也想要消息中的结果。单击书签或按C-x r b应打开文件并将光标置于编辑器1中。

我已经尝试了一些lisp片段来“锁定”窗口以防止更改,但是当所有窗口都“锁定”时,emacs会疯狂,因为它找不到可用的窗口来输入新的输出。 emacs的这个令人讨厌的缓冲交换功能必须回到80x25字符终端日。

我从未见过ECB窗户被破坏,所以它必须以某种方式可行。

2 个答案:

答案 0 :(得分:2)

您明确要求专用窗口。好吧,Emacs正是这个功能: 专用窗口 C-h r g dedicated windows告诉你几乎所有你需要知道的事情。

但另请参阅special-display-buffer-namesspecial-display-regexps ---或者如果您是受虐狂,请与display-buffer-alist混在一起做同样的事情。

使用display-buffer-alist,您原则上可以您可能想到的任何,包括将内衣打结并将其点燃。

(我,我只是将special-display-regexps设为("[ ]?[*][^*]+[*]")。)

答案 1 :(得分:0)

在打开物品前致电lockon-window。再次打电话给所有窗户。设置将所有内容发送到窗口很容易:消息;然而,要向窗口显示一个缓冲区:来自窗口的Editor-1:书签+没有调用lockon-window,我的力量太难了。我希望slide-window有所帮助。