Gần đây tôi đã chuyển sang sử dụng GNU Emacs 24 từ 23 và tôi nhận thấy rằng bất cứ khi nào tôi nhập gud, bộ đệm * input/output * mở. Tôi đã đóng nó bằng tay với C-x 0 mỗi khi tôi gỡ lỗi. Bất cứ ai có thể chỉ cho tôi các biến chính xác mà cần phải được cấu hình để ngăn chặn hiển thị bộ đệm này theo mặc định?Cách tắt * bộ đệm đầu vào/đầu ra * trong gud
Trả lời
Tôi cũng gặp vấn đề này. Sau khi xem nhanh mã nguồn, vấn đề dường như là GUD dành hầu hết các cửa sổ của nó (tức là, nó gọi số set-window-dedicated-p
trên chúng). Một cửa sổ chuyên dụng là một cửa sổ không thể chuyển đổi được. Tôi đoán ngày càng có nhiều khẩu súng trẻ đang sử dụng GUD ở nhiều chế độ cửa sổ và muốn GUD quản lý bố cục cửa sổ của họ, và những người trong chúng ta thích làm điều đó theo cách thủ công thì thuộc về thiểu số. Dường như không có bất kỳ điều gì rõ ràng trong gdb-mi.el sẽ vô hiệu hóa hành vi này (ví dụ: gdb-set-window-buffer
dường như luôn làm một số set-window-dedicated-p
đến t
cho tất cả các cửa sổ mà nó quản lý).
Hiện tại, this solution nhiều hơn hoặc ít hơn số tôi đang sử dụng - Tôi tự hủy kích hoạt cửa sổ cống hiến. Điều này có vẻ tối ưu, mặc dù. Nên có một số cách để GUD cho phép bạn quản lý bố cục cửa sổ theo cách thủ công. This question is related.
Có một 'gud-gdb' trong các bản phát hành emacs mới thực hiện hành vi cũ của tương tác gdb/emacs (không có cửa sổ chuyên dụng và không có bộ đệm I/O). Nếu bạn không muốn gọi gud-gdb Mx khi bạn sử dụng nó, bạn có thể xác định một bí danh cho Mx gdb
thanx .. hành vi mặc định gdb là không mong muốn, cho rằng M-x gdb-nhiều cửa sổ đã tồn tại mãi mãi .. – vrdhn
Bạn có thể tắt cửa sổ cống hiến hoàn toàn như thế này: (trong 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)
Lưu ý rằng điều này không ảnh hưởng đến các cửa sổ đã được dành riêng.
Vì một số lý do, bản sửa lỗi của bạn chỉ hoạt động một chút - sau đó cửa sổ bật lên một lần nữa trong chế độ chuyên dụng, mỗi khi nó nhận được một đầu ra mới. –