2012-03-02 6 views
1

バッファにフォーカスが外れているかどうかを知るemacs lisp関数はありますか?Emacs Lispバッファのフォーカスが外れていますか?

私はそれは焦点が合っていない直後セマンティクス*possible completion's*バッファを取り除くだろうフックを記述しようとしています。

もそれは同様に*Messages*バッファーを取り除くことは可能ですか?私はそれを殺す関数を見つけていない。

+0

ataylorが示されているようにC-Gを押したときに、'良いアイデアではない場合、このウィンドウは閉じます。どのように問題を引き起こしていますか? – phils

+0

私はちょうどバッファリストの混乱を減らしたいと思います。何かが起こったときに迷惑をかけることがあります。私はdiredをするとバッファを閉じることはできません。直後に、私が現在のフレームにいて、バッファを切り替えたいときに、より多くのバッファが必要です。 –

+0

'Mx bury-buffer'にグローバルキーバインディングを追加することを検討してください。 'q'は多くの主要なモード(dired、help、info、customize、etc ...など)でバッファを埋めることに注意してください。デフォルトの 'list-buffers'の代わりに' C-x C-b'を 'ibuffer'に再バインドし、リストをフィルタリングしてグループ化する方法を学び、望ましくないバッファを邪魔にならないようにします。 diredの場合、ファイルやディレクトリを開くときに 'a'を使ってdiredバッファを削除することができます。 (編集:実際には、私は正確にこれらの提案について詳細に入る前の回答がありますhttp://stackoverflow.com/a/3145824/324105)を – phils

答えて

1

あなたの2番目の質問に関連して、また、メッセージバッファーを取り除くことも可能です。あなたがido-modeを使用している(!と誰もがそれを使用する必要がある)場合は、次のelispで一覧表示バッファから*Messages*バッファを非表示にすることができます:あなたはPopWinを試すことができます

(require 'ido) 
(setq ido-ignore-buffers '("^\*Messages\*")) 
+0

「と誰もがそれを使用しなければならない」 イドがより優れていますデフォルトの完了メカニズム。しかし、大きなリストの長い文字列(つまりバッファ名)の中から選択する必要があるときは、何でもidoよりも優れています。 –

+0

何かを使ってみましたが、IIRCの顔に奇妙な/邪魔している/見つけました。私はOS X上の重いQuickSilverユーザーですので、何か別のものを試してみてください... – liwp

+0

"^ \ * Messages \ *"この場合、正規表現を使用する必要はありますか? –

2

バッファが現在current-bufferにフォーカスを持っているバッファであるかどうかをテストすることができます。例えば、*scratch*にフォーカスがあるかどうかをテストするために、

(eq 
(current-buffer) 
(get-buffer "*scratch*")) 

*Messages*バッファは、Emacsの重要な部分です。これは、message関数の暗黙のターゲットであり、すべての情報からさまざまな情報をログに記録するために使用されます。他のバッファと同様に*Messages*を殺すことができますが、次回に何かmessageが呼び出されたときに再作成されます。おそらくmessage関数を再定義することによってそれを沈黙させることができますが、私はそうすることのポイントに疑問を持っています。

0

、それはあなたがその意志のバッファを指定することができます特別なウィンドウで開きます。フレームはピントの外れたり、 `*メッセージ*を殺し、

関連する問題