2012-04-08 8 views
4

エコー領域とミニバッファを分けることができるかどうかは不思議ですから、メッセージの出力とコマンドの入力には2つの異なる場所(行、枠、フレーム)が使用されます。Emacsでミニバッファとエコー領域を分けることはできますか?

それはHide Emacs echo area during inactivityに言われると、完全にエコー領域を取り除くことは不可能ですが、いくつかの提案は次のとおりです。

どのようなオプションがありますか?エコー領域とミニバッファを分離することは理論上可能ですか?理論的には、Cソースコードの書き換えとEmacsの再コンパイルが必要でしょうか?考えや考えを投稿してください。

+0

時々、私はemacsのインタラクティブなプロンプトブロックステータスメッセージを見つけました。分離はemacsをより良くするでしょう! – Abdillah

答えて

9

マニュアルとCコードを参考にして、私は答えが "いいえ"と信じています。

M-:(info "(elisp) Echo Area Customization")RETは言う:

も、ミニバッファのウィンドウのサイズを変更するための最大の高さを指定します(エコー領域に適用される変数 `MAX-ミニウィンドウの高さ」これは実際にはミニバッファウィンドウの特別な使い方です; * Minibuffer Misc::)に注意してください。

Minibuffer Miscリンクはさらに、特定のポイントを説明しませんが、エコー領域が明示的にミニバッファ・ウィンドウを使用している場合、あなたはそれらを分離することはできないでしょう。

編集:確認のため

、あなたがxdisp.cでCの関数message3_nolog()のソースを見れば、それは、選択したフレームのミニバッファ用のフレームを取得していることを選択し、次に使用するecho_area_display()に通過現在選択されているフレームのミニバッファウィンドウをエコー領域ウィンドウとして表示します。

(Emacsの24.0.95)

だから、ミニバッファと、エコー領域に使用する「ミニウィンドウは、」ちょうど手動状態として、確かに1と同じです。

私は考えることができる唯一の可能性は、いくつかの他のウィンドウに自動的にコピーエコー領域メッセージの道を見つけようとしているが、これはすべてのelispにさらされていない機能で、Cコードで起こっているように、私は疑いますそれも不可能です。

編集2:

それは理論的にCのソースコードを書き換えるとのEmacsを再コンパイルする必要でしょうか?

本物の分離が必要な場合は、そうだと思います。

は、メッセージをエコー領域に書き込む可能性のあるすべての機能についてアドバイスすることで、それを完全にelispで管理できる可能性があります。より良い作業に費やしたことになる

RET(info "(elisp) The Echo Area")(ただし、これを実現するために本当に必死であれば、私はあなたの時間をお勧めします:

M-:あなたはそれが伴うかもしれないものを見るためにここに読み始めることができます私はちょっと疑問が残っているので、このような分離ができるようにするパッチを提供しています。

関連する問題