2010-07-22 17 views
26

Tôi làm việc với hai màn hình, và thường sử dụng các emacs với hai khung mở; một cho mỗi màn hình. mỗi khung hình được chia thành hai cửa sổ side-by-side, như vậy:Khi sử dụng hai khung hình trong emacs, làm cách nào để ngăn bộ đệm biên dịch hiển thị trong cả hai?

a | b <-- frame 1 in monitor 1 
------- 
c | d <-- frame 2 in monitor 2 

Khi tôi nhấn nút 'biên dịch' của tôi trong khi ở cửa sổ một, bộ đệm biên soạn mở trong bộ đệm bên cạnh nó. Cho đến nay rất tốt:

a | compilation 
----------------- 
c |  d 

Tuy nhiên, nếu tôi sau đó di chuyển đến cửa sổ c để chỉnh sửa một số nội dung, sau đó nhấn biên dịch một lần nữa, cửa sổ d thăm đệm biên soạn cũng như:

a | compilation 
------------------ 
c | compilation 

Vì vậy, bây giờ tôi có một nửa số bất động sản trên màn hình của tôi được lấy bởi hai bản sao của cùng một bộ đệm biên dịch, tự hỏi tại sao tôi có hai màn hình :)

Tôi có thể ngăn chặn điều này bằng cách bấm phím biên dịch khi con trỏ của tôi nằm trong bộ đệm tiếp theo vào bộ đệm biên dịch hiện đang mở, nhưng tôi đã nhấn 'biên dịch' sớm hơn d thường xuyên mà tôi thường không có sự hiện diện của tâm trí để làm như vậy. Tôi cảm thấy như có một cái gì đó tôi có thể tinh chỉnh trong .emacs vì vậy tôi không cần phải.

Mọi đề xuất? Lý tưởng nhất, khi tôi nhấn 'biên dịch', bộ đệm biên dịch hiện đang mở sẽ chuyển từ cửa sổ trước đó sang cửa sổ bên cạnh cửa sổ hiện đang được sử dụng. Nếu đó là quá phức tạp, tôi dễ dàng giải quyết để có emacs không truy cập vào bộ đệm biên dịch trong cửa sổ lân cận, nếu nó đã được mở trong một cửa sổ khác.

+1

Câu hỏi nổi bật - không bao giờ được xem xét sử dụng các emac với cài đặt đó trước đây! – cristobalito

Trả lời

28
(setq-default display-buffer-reuse-frames t) 

Từ các tài liệu:

Non-nil nghĩa 'màn đệm' nên tái sử dụng khung. Nếu bộ đệm được đề cập đã được hiển thị trong một khung, hãy nâng cao khung đó.

+0

Tuyệt vời, cảm ơn bạn! – SuperElectric

+3

'Biến này đã lỗi thời kể từ 24.3; sử dụng mục nhập có thể sử dụng lại 'khung hình có thể tái sử dụng' trong 'display-buffer-alist'.' – cYrus

Các vấn đề liên quan