¿Cómo obtengo una línea de modo más elegante que utiliza colores sólidos y triángulos?


93

Las personas ocasionalmente publican capturas de pantalla con modelinas que tienen colores sólidos y triángulos: ingrese la descripción de la imagen aquí

¿Cómo reproduzco este efecto?


2
De hecho, me han hecho esta pregunta varias veces en otros sitios, así que pensé en preguntarla aquí también :).
Tikhon Jelvis

1
Consulte también whattheemacsd.com/appearance.el-01.html para obtener sugerencias sobre cómo cambiar el texto, no solo el aspecto, de la línea de modo.
mankoff

Respuestas:


78

Esto se puede lograr con dos paquetes:

  1. línea de modo inteligente .
  2. líneas de alta tensión .

En general, la línea de modo inteligente es más poderosa que la línea de alimentación (perdón por el juego de palabras), en el sentido de que ofrece más funciones para controlar el comportamiento de la línea de modo y más personalización en la apariencia. El archivo Léame tiene una gran lista de características , pero en resumen ofrece control de ancho, reemplazo de cadena en la ruta del archivo, ocultación de los modos menores, entre otras cosas.

  • Si todo lo que desea es lograr la captura de pantalla, powerline es la mejor opción.
  • Si desea un conjunto de otras características combinadas con eso, pruebe la línea de modo inteligente .

Dado que powerline se ha explicado muy bien en otra respuesta, me centraré en cómo puede lograr esa apariencia con la línea de modo inteligente.

Primera instalación

Puede instalar la línea de modo inteligente desde Melpa, Melpa-Stable o descargarla manualmente. Suponiendo que decida usar el administrador de paquetes, simplemente haga

M-x package-install RET smart-mode-line

Una vez que lo enciende M-x sml/setup, su línea de modo debería ser similar a uno de estos dos.
Captura de pantalla del tema oscuro Captura de pantalla del tema de luz

Powerline Theme

La línea de modo inteligente tiene varios temas incorporados, el que logra la apariencia solicitada se proporciona por separado en el themes/ directorio. Tenga en cuenta que este tema todavía está en versión beta, por lo que personalizarlo podría no funcionar perfectamente todavía.

Instala el tema de Melpa

M-x package-install RET smart-mode-line-powerline-theme

Si desea instalarlo manualmente, está aquí , pero también necesitará instalar powerline.

Finalmente puedes activar el tema con M-x sml/apply-theme RET powerline. Y su línea de modo debería verse así.
Captura de pantalla del tema Powerline
Como puede ver, el orden de los elementos no es el mismo, pero la apariencia general está ahí.

Para usar este tema cada vez, agregue lo siguiente a su archivo init. También puede personalizar cualquiera de las variables de configuración de la línea eléctrica, y deberían tener el mismo efecto aquí.

;; These two lines are just examples
(setq powerline-arrow-shape 'curve)
(setq powerline-default-separator-dir '(right . left))
;; These two lines you really need.
(setq sml/theme 'powerline)
(sml/setup)

1
También estaba escribiendo sobre la línea de modo inteligente, pero seguramente me explicaste mejor. Gracias.
Boccaperta-IT

3
También puede profundizar en las características de expresiones regulares donde un camino puede ser representado por un conjunto más corto de caracteres ... en :ED:lugar de ~/.emacs.d/y rich-minoritypara ocultar los encendedores de modo menor.
Kaushal Modi

1
@kaushalmodi elaboró ​​un poco.
Malabarba

46

Esto se puede lograr con un paquete llamado "powerline". Hay varias variantes disponibles, incluida al menos una a través de la cual puede instalar package.el.

Personalmente, yo uso este . Aquí hay una captura de pantalla del paquete README:

Un ejemplo de línea eléctrica.

Puede configurar el color configurando la cara de la línea de modo:

(set-face-attribute 'mode-line nil
                    :foreground "Black"
                    :background "DarkOrange"
                    :box nil)

También puede configurar diferentes formas, en lugar de solo triángulos:

(setq powerline-arrow-shape 'curve)

Emacs powerline con curvas en lugar de flechas.


2
FWIW: si tiene un problema para que los colores de los separadores sean totalmente parecidos a como lo hice yo, encontré este tenedor powerline donde puede (setq powerline-default-separator 'utf-8)que le permite usar cualquiera de las fuentes parcheadas de powerline aquí .
waymondo

@thepalmcivet: es bueno saberlo, pero no estoy del todo claro a qué te refieres con conseguir que los colores sean perfectos. ¿Tienes una captura de pantalla del problema o algo así? ¡Gracias!
Tikhon Jelvis

2
No hay problema, aquí está lo que me pasa con (setq powerline-default-separator 'arrow). Estoy instalando Carbon Emacs con Homebrew con la --srgbbandera y (setq ns-use-srgb-colorspace t)en mi .emacs.d.
waymondo

Tikhon, esa es una línea de modo encantadora que tienes allí. ¿Podría publicar la sección completa de formato de línea de modo que ha capturado parcialmente? Gracias :-)
Ivan Vučica

2
@ IvanVučica: ¡Gracias! Está en GitHub, en dos partes: un powerline.el modificado que contiene un montón de formas para elegir ( curvees agradable, pero lo uso diagonalahora) y mi .emacs en sí, que tiene algunas configuraciones misceláneas que obtuve en alguna parte. Si está tan inclinado, puede hacer su propia copia powerline.ely agregar sus propias formas de separador a través del arte ASCII para obtener el efecto exacto que necesita :).
Tikhon Jelvis

12

Como han mencionado otras personas, powerline es el paquete que formatea la línea de modo de esa manera. Sin embargo, la mayoría de los temas de emacs no definen colores para powerline (que no es genial). Un tema que lo hace es el colorido (y completo) tema moe . Incluso tiene un modo que cambia de color por la noche para que sea más agradable a la vista. Se parece a esto:

tema-moe en glorioso modo magenta, tematizando el powerline modeline

Mis flechas en la línea eléctrica se ven extrañas porque estoy usando una versión sin parche de la fuente Luxi Mono.


1

Mis flechas en la línea eléctrica se ven extrañas porque estoy usando una versión sin parche de la fuente Luxi Mono.

William Roe , a juzgar por tu captura de pantalla, estás en macOS. Como se indica en el comentario de este problema , deberá agregar

(setq powerline-image-apple-rgb t)

a sus archivos de inicio. Esto debería corregir el problema de coloración con los separadores ("flechas"). Al menos funcionó para mí.