最近、GNU Emacs 23 から 24 を使用するように切り替えましたが、gud に入るたびに *input/output* バッファーが開いていることに気付きました。デバッグするたびに Cx 0 で手動で閉じています。デフォルトでこのバッファの表示を停止するために設定する必要がある正しい変数を教えてもらえますか?
3 に答える
新しい emacs リリースには、gdb/emacs 相互作用の古い動作を実装する「gud-gdb」があります (専用ウィンドウも I/O バッファーもありません)。使用時に Mx gud-gdb を呼び出したくない場合は、Mx gdb のエイリアスを定義できます。
私もこの問題を抱えています。ソース コードをざっと見てみると、問題は、GUD がほとんどのウィンドウを専用にしている (つまり、set-window-dedicated-p
それらを呼び出している) ことにあるようです。専用ウィンドウは、切り替えることができないウィンドウです。ますます多くの若い銃が多くのウィンドウ モードで GUD を使用しており、GUD がウィンドウ レイアウトを管理することを望んでいると思います。gdb-mi.el には、この動作を無効にする明らかなものはないようです (たとえば、管理するすべてのウィンドウに対してgdb-set-window-buffer
常に to を実行するset-window-dedicated-p
ようです)。t
今のところ、この解決策は多かれ少なかれ私が使用しているものです。ウィンドウの専用化を手動で無効にしています。ただし、これは最適ではないようです。ウィンドウ レイアウトを手動で管理できるように GUD を取得する方法がいくつかあるはずです。この質問は関連しています。
次のようにウィンドウ専用を完全に無効にすることができます: (Emacs 24.4+)
(defun set-window-undedicated-p (window flag)
"Never set window dedicated."
flag)
(advice-add 'set-window-dedicated-p :override #'set-window-undedicated-p)
これは、すでに専用のウィンドウには影響しないことに注意してください。