我在Emacs中有一個異步進程,它創建一個TAGS文件。如何在Emacs中創建類似* compilation *的緩衝區?
該進程創建名爲* ctags *的進程緩衝區。如果處理結果爲「已完成\ n」,則殺死緩衝區。
如果處理結果是其他內容,我想在運行時顯示類似於*編譯*狀態輸出的進程緩衝區M-x編譯。
I.e.我想垂直分割屏幕並在底部顯示* ctags *緩衝區。按q最好是殺底部緩衝區,只顯示我原來的緩衝區。
我想在我的過程定點回調使用這樣的:
(split-window-vertically) (set-window-buffer (selected-window) (get-buffer "*ctags*"))
但除了一個事實,即它把*的ctags *頂部緩衝,緩衝不具備相同的特性*編譯*輸出,例如按q插入q。
如何創建一個類似* compilation *的緩衝區?
編輯:
通過下面的三分球傑克遜的回答啓發,這不正是我想要的:
(pop-to-buffer (get-buffer "*ctags*")) (compilation-mode)
它選擇* CTAGS *緩衝區,將其放入編譯模式和q將退出窗口。
EDIT2: 使用
(compilation-mode)(主要模式,而不是次要模式),因爲Emacs的不知何故不喜歡重新申請未成年人模式的exisiting緩衝區。
錯誤消息我得到的是:
Toggling compilation-minor-mode off; better pass explicit argument.
太棒了!正是我需要的。爲了完整起見,(編譯小模式)也起作用。 – cschol 2009-08-09 23:44:44