2012-02-25 35 views
22

Nói rằng tôi có Emacs cửa sổ chia của tôi thành nhiều gạch, ví dụ:Yêu cầu Emacs để làm nổi bật rõ ràng hơn mà cửa sổ (cửa sổ) có trọng tâm (con trỏ)

--------------------------- 
|   |   | 
|   |   | 
--------------------------- 
|       | 
|       | 
--------------------------- 

Khi tôi chuyển đổi giữa gạch (hay còn gọi là cửa sổ trong Emacs) để chỉnh sửa các tệp của tôi (ví dụ: sử dụng Cx o), tôi có thể thấy trên đó tôi bằng cách định vị con trỏ (điểm) trên màn hình và kiểm tra sự khác biệt trong tô màu trên thanh trạng thái của mỗi ô:

Tuy nhiên, việc định vị con trỏ trên màn hình lớn không hề dễ dàng VÀ sự khác biệt trong tô bóng trên thanh trạng thái nơi con trỏ hầu như không đáng kể:

Đây là những gì một thanh trạng thái trông giống như khi cửa sổ tương ứng được chọn:

              Img1

Đây là những gì nó trông giống như khi cửa sổ tương ứng là không được chọn (chú ý màu xanh lá cây có chút mờ)

              enter image description here

Trên đây là với chủ đề màu zenburn trên GNU Emacs 23.3.1.

Câu hỏi của tôi là: Có cách nào để Emacs rõ ràng hơn cho biết cửa sổ/lát/bộ đệm nào là cửa sổ có tiêu điểm không?

+1

Gần trùng lặp: http://stackoverflow.com/questions/1516830/custom-background-for-active-window –

+2

Tôi chọn để đánh dấu chế độ dòng của cửa sổ hiện tại và đặt chế độ dòng của các cửa sổ khác giống nhau nền là chủ đề. – CodyChan

Trả lời

22

Tuyệt đối!

Bạn có thể thay đổi modeline để tô sáng thanh đang hoạt động bằng cách sử dụng các mục sau trong .emacs của bạn (thay đổi màu sắc và kiểu dáng cho phù hợp với sở thích của bạn).

(set-face-attribute 'mode-line 
       nil 
       :foreground "gray80" 
       :background "gray25" 
       :box '(:line-width 1 :style released-button)) 
(set-face-attribute 'mode-line-inactive 
       nil 
       :foreground "gray30" 
       :background MY_BG_COLOR 
       :box '(:line-width 1 :style released-button)) 

Vì có vẻ như bạn đang sử dụng chủ đề màu Zenburn, bạn cũng có thể sửa nó trong đó. Chỉ cần mở tập tin trong màu chủ đề của bạn thư viện mang tên zenburn.el (hoặc nó có thể là màu-theme-zenburn.el) và tìm kiếm những dòng sau:

`(mode-line 
    ((,class (:foreground ,zenburn-green+1 
         :background ,zenburn-bg-1 
         :box (:line-width -1 :style released-button))))) 
`(mode-line-buffer-id ((,class (:foreground ,zenburn-yellow :weight bold)))) 
`(mode-line-inactive 
    ((,class (:foreground ,zenburn-green-1 
         :background ,zenburn-bg-05 
         :box (:line-width -1 :style released-button))))) 

và thay đổi các giá trị của nền và màu nền trước như bạn thấy phù hợp.

+0

Cảm ơn! Điều này khá tốt. Có cách nào để làm nổi bật dòng hiện tại trên bộ đệm hoạt động? Nó sẽ giúp rất nhiều để Emacs làm như vậy vì nó sẽ làm cho nó dễ dàng hơn để bản địa hóa con trỏ. Tôi đã thấy tính năng này trong IDE và nó sẽ là tuyệt vời để có điều này trong Emacs. –

+2

@roseck: '(global-hl-line-mode 1)' – jfs

+2

Lưu ý rằng biến 'global-hl-line-sticky-flag' xác định xem nó chỉ làm nổi bật cho bộ đệm hoạt động hay cho tất cả bộ đệm, nhưng điều này nên được đặt như bạn muốn theo mặc định. 'M-x tùy chỉnh nhóm RET hl-line RET' để biết thêm. – phils

6

Để có giải pháp nhanh hơn, bạn có thể sử dụng plugin Smart Mode Line cho Emacs: dòng chế độ chiều rộng cố định, mã hóa màu. Hoạt động tốt với chủ đề Zenburn (tôi đang sử dụng cả hai ngay bây giờ).

Có sẵn trong ELPA, nhân tiện.

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