【发布时间】:2010-11-18 02:24:33
【问题描述】:
我在 Emacs 中有一个异步进程,它创建一个 TAGS 文件。
此进程创建一个名为 *ctags* 的进程缓冲区。如果进程结果是“finished\n”,我会终止缓冲区。
如果进程结果是其他任何我想在运行 M-x compile 时显示类似于 *compilation* 状态输出的进程缓冲区。
即我想垂直分割屏幕并在底部显示 *ctags* 缓冲区。按 q 最好 kill 底部缓冲区并只显示我的原始缓冲区。
我尝试在我的进程哨兵回调中使用它:
(垂直分割窗口) (set-window-buffer (selected-window) (get-buffer "*ctags*"))但是除了它把 *ctags* 缓冲区放在顶部之外,缓冲区不具有与 *compilation* 输出相同的特征,例如按 q 会插入 q。
如何创建像 *compilation* 这样的缓冲区?
编辑:
受以下 Trey Jackson 回答的启发,这正是我想要的:
(pop-to-buffer (get-buffer "*ctags*")) (编译模式)它选择 *ctags* 缓冲区,使其进入编译模式,q 将退出窗口。
EDIT2: 使用
(compilation-mode)(主要模式而不是次要模式)因为 Emacs 不喜欢将次要模式重新应用到现有缓冲区。
我得到的错误信息是:
关闭编译次要模式;更好地传递显式参数。【问题讨论】: