2012-02-25 15 views
22

że mam moje Emacs okno podzielone na wiele płytek, np wyróżnić:wyjściowa Emacs jaśniej które okno (szyba) ma fokus (kursor)

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

Kiedy przełączyć między płytkami (aka okien w Emacs) aby edytować moje pliki (np. używając Cx o), widzę, na którym kafelku jestem, wizualnie lokalizując kursor (punkt) na ekranie i sprawdzając różnicę cieniowania na pasku stanu każdego kafelka:

Jednak umieszczenie kursora na dużym ekranie nie jest łatwe ORAZ różnica w cieniowaniu na pasku stanu, gdzie znajduje się kursor jest znikomy:

To właśnie pasek stanu wygląda, gdy wybrany jest odpowiednie okno:

              Img1

To jak to wygląda, gdy odpowiednie okno jest nie wybrano (zauważ, że zielony jest nieco słabszy)

              enter image description here

Powyższe jest z tematem kolorów zenburn na GNU Emacs 23.3.1.

Moje pytanie brzmi: czy istnieje sposób, aby Emacs wyraźniej wskazał, które okno/kafelek/bufor jest tym, na którym koncentruje się?

+1

W pobliżu duplikatu: http://stackoverflow.com/questions/1516830/custom-background-for-active-window –

+2

Wybieram podświetlić linię trybu bieżącego okna i ustawić linię tryb innych okien tego samego tło jako motyw. – CodyChan

Odpowiedz

22

Absolutnie!

Możesz zmienić modeline, aby podświetlić aktywny pasek, używając następujących opcji w .emacs (zmień kolory i styl, aby dostosować się do twoich preferencji).

(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)) 

Ponieważ wydaje się, że używasz motywu kolorów Zenburn, możesz go również naprawić. Wystarczy otworzyć plik w swoim kolorów motywu biblioteki nazwie zenburn.el (lub może to być kolor-theme-zenburn.el) i sprawdzić następujące wiersze:

`(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))))) 

i zmienić wartości tle i na pierwszym planie kolory zgodnie z Twoim wyobrażeniem.

+0

Dzięki! To całkiem nieźle. Czy istnieje sposób podświetlenia bieżącego wiersza aktywnego bufora? Dużo by się stało, gdyby Emacs to zrobił, ponieważ ułatwiłoby to lokalizację kursora. Widziałem tę funkcję w IDE i byłoby fantastycznie mieć to w Emacs. –

+2

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

+2

Należy zauważyć, że zmienna 'global-hl-line-sticky-flag' określa, czy podświetla ona tylko dla aktywnego bufora, czy dla wszystkich buforów, ale to powinno być ustawione tak, jak chcesz domyślnie. 'M-x customize-group RET hl-line RET' dla więcej. – phils

6

Aby uzyskać szybsze rozwiązanie, można użyć wtyczki Smart Mode Line dla Emacs: linii oznaczonej kolorem o stałej szerokości. Działa świetnie z motywem Zenburn (używam ich teraz).

Jest on dostępny w ELPA, przy okazji.

Powiązane problemy