2009-08-09 4 views
3

私はTAGSファイルを作成するEmacsで非同期プロセスを持っています。Emacsで* compilation *と似たバッファを作るには?

このプロセスは、* ctags *と呼ばれるプロセスバッファを作成します。処理結果が「終了しました\ n」の場合、バッファを強制終了します。

もし何か他のものがあれば、M-xコンパイルを実行しているときに、*コンパイル*ステータス出力と同様のプロセスバッファを表示したいと思います。

I.e.私は画面を縦に分割して、下に* ctags *バッファーを表示したい。 qを押すことは、好ましくはを殺して、元のバッファを表示するだけです。

私は、プロセスセンチネルコールバックでこれを使用してみました:

 
(split-window-vertically) 
(set-window-buffer (selected-window) (get-buffer "*ctags*")) 

しかしさておき、それは*のctags *上にバッファを置き、バッファは*コンパイルと同じ特性を持っていないという事実から*出力、例えばq挿入q。

*コンパイル*のようにバッファを作成するにはどうすればよいですか?

EDIT:

 
(pop-to-buffer (get-buffer "*ctags*")) 
(compilation-mode) 

それは、* ctagsの*バッファを選択コンパイルモードにそれを置くとQ:以下のTreyジャクソンの答えに触発さ

が、これは私が欲しいものを正確に行いますウィンドウを終了します。

EDIT2:Emacsは何とかexisitingバッファにマイナーモードを再適用好きではないので、

(compilation-mode)
(メジャーモードの代わりにマイナーモード)を使用して

私が取得エラーメッセージは次のとおりです。

 
Toggling compilation-minor-mode off; better pass explicit argument. 

答えて

5

*compilation*バッファの動作を取得するには、スクリプトにこれを追加します。

(compilation-mode) 
+1

素晴らしい!正確に私が必要としたもの。完全性のために、(compilation-minor-mode)も同様に動作します。 – cschol

2

それはcompilation-から独自のモードを導出する方が良いでしょうモード、エラー正規表現などを定義します。

+0

例を具体的に説明することはできますか? – cschol

関連する問題