2012-02-25 9 views
22

Decir que tengo a mi ventana dividida Emacs en varias baldosas, por ejemplo:Preguntar Emacs para resaltar más claramente qué ventana (panel) tiene el foco (cursor)

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

Cuando cambio de azulejos (también conocido como ventanas en Emacs) para editar mis archivos (por ejemplo, usando Cx o), puedo ver en qué tesela estoy ubicando visualmente el cursor (punto) en la pantalla y comprobando la diferencia en sombreado en la barra de estado de cada mosaico:

Sin embargo, ubicar el cursor en una pantalla grande no es fácil Y la diferencia en el sombreado en la barra de estado donde está el cursor es casi insignificante:

Esto es lo que una barra de estado se ve como cuando se selecciona la ventana correspondiente:

              Img1

Esto es lo que parece cuando la ventana correspondiente es no seleccionado (observe que el verde es un poco más tenue)

              enter image description here

Lo anterior es con el tema del color zenburn en GNU Emacs 23.3.1.

Mi pregunta es: ¿Hay alguna manera de que Emacs indique más claramente qué ventana/mosaico/buffer es el que tiene el foco?

+1

Cerca de duplicado: http://stackoverflow.com/questions/1516830/custom-background-for-active-window –

+2

Elijo resaltar la línea de modo de la ventana actual y establecer la línea de modo de otras ventanas de la misma fondo como el tema. – CodyChan

Respuesta

22

¡Absolutamente!

Puede cambiar la línea de modo para resaltar la barra activa utilizando lo siguiente en sus .emacs (cambie los colores y el estilo para que se adapte a sus preferencias, por supuesto).

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

Dado que parece que está utilizando el tema de color Zenburn, también puede arreglarlo allí. Sólo tiene que abrir el archivo dentro de su color temático biblioteca llamada zenburn.el (o podría ser de color-theme-zenburn.el) y la búsqueda de las siguientes líneas:

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

y cambiar los valores de los antecedentes y colores de primer plano como mejor le parezca.

+0

¡Gracias! Esto es bastante bueno ¿Hay alguna forma de resaltar la línea actual en el búfer activo? Ayudaría mucho hacer que Emacs lo haga, ya que facilitaría aún más la localización del cursor. He visto esta característica en IDEs y sería fantástico tener esto en Emacs. –

+2

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

+2

Tenga en cuenta que la variable 'global-hl-line-sticky-flag' determina si resalta solo para el búfer activo, o para todos los búferes, pero esto debería establecerse como lo desee de forma predeterminada. 'M-x personalizar-grupo RET hl-line RET' para más. – phils

6

Para una solución más rápida, puede usar el complemento Smart Mode Line para Emacs: una línea de modo de ancho fijo con código de color. Funciona muy bien con el tema de Zenburn (estoy usando ambos en este momento).

Está disponible en ELPA, por cierto.

Cuestiones relacionadas