Come posso ottenere una linea di modalità più elaborata che utilizza colori solidi e triangoli?


94

Le persone a volte pubblicano screenshot con modeline che hanno colori solidi e triangoli: inserisci qui la descrizione dell'immagine

Come posso replicare questo effetto?


2
In realtà mi è stata posta questa domanda alcune volte su altri siti, quindi ho pensato di fare preventivamente anche qui :).
Tikhon Jelvis,

1
Vedi anche whattheemacsd.com/appearance.el-01.html per suggerimenti su come modificare il testo, non solo l'aspetto, della linea di modalità.
mankoff,

Risposte:


79

Ciò può essere ottenuto con due pacchetti:

  1. linea smart-mode .
  2. powerline .

Nel complesso, la smart-mode-line è più potente della powerline (scusate il gioco di parole), nel senso che offre più funzionalità per controllare il comportamento della mode-line e una maggiore personalizzazione nell'aspetto. Il file Leggimi ha un grande elenco di funzionalità , ma in breve offre il controllo della larghezza, la sostituzione delle stringhe nel percorso del file, nascondendo le modalità secondarie, tra le altre cose.

  • Se tutto ciò che vuoi è ottenere lo screenshot, powerline è la scelta migliore.
  • Se vuoi una suite di altre funzionalità combinata con quella, prova la linea smart-mode .

Dal momento che powerline è stata spiegata molto bene in un'altra risposta, mi concentrerò su come puoi ottenere quell'aspetto con la linea smart-mode.

Prima installazione

Puoi installare la linea smart-mode da Melpa, Melpa-Stable o scaricarla manualmente. Supponendo che tu decida di utilizzare il gestore pacchetti, basta farlo

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

Dopo averlo acceso con M-x sml/setup, la linea di modalità dovrebbe apparire simile a una di queste due.
Schermata Tema scuro Schermata Tema luce

Tema Powerline

smart-mode-line ha diversi temi integrati, quello che raggiunge l'aspetto richiesto è fornito separatamente nella themes/ directory. Nota che questo tema è ancora in versione beta, quindi la personalizzazione potrebbe non funzionare ancora perfettamente.

Installa il tema da Melpa

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

Se vuoi installarlo manualmente, è qui , ma dovrai anche installare powerline.

Finalmente puoi attivare il tema con M-x sml/apply-theme RET powerline. E la tua linea di modalità dovrebbe quindi apparire così.
Screenshot del tema Powerline
Come puoi vedere, l'ordine degli elementi non è esattamente lo stesso, ma l'aspetto generale è lì.

Per utilizzare questo tema ogni volta, aggiungi quanto segue al tuo file init. Puoi anche personalizzare una qualsiasi delle variabili di configurazione powerline e qui dovrebbero avere lo stesso effetto.

;; 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
Stavo anche scrivendo di smart-mode-line, ma sicuramente hai spiegato meglio. Grazie.
Boccaperta-IT,

3
Puoi anche elaborare le funzionalità di regexp in cui un percorso può essere rappresentato da un set di caratteri più corto ... :ED:anziché ~/.emacs.d/e rich-minorityper nascondere gli accendini in modalità minore.
Kaushal Modi,

1
@kaushalmodi ha elaborato un po '.
Malabarba,

46

Ciò può essere ottenuto con un pacchetto chiamato "powerline". Sono disponibili diverse varianti, tra cui almeno una che è possibile installare package.el.

Personalmente, io uso questo . Ecco uno screenshot dal README del pacchetto:

Un esempio di powerline.

È possibile configurare il colore impostando la faccia della linea di modalità:

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

Puoi anche configurare forme diverse, anziché solo triangoli:

(setq powerline-arrow-shape 'curve)

Emacs powerline con curve anziché frecce.


2
FWIW - Se hai un problema a far sembrare i colori dei separatori totalmente come ho fatto io, ho trovato questo fork powerline dove puoi (setq powerline-default-separator 'utf-8)che ti permette di usare uno qualsiasi dei font patch powerline qui .
Waymondo,

@thepalmcivet: buono a sapersi, ma non sono del tutto chiaro cosa intendi per ottenere i colori senza soluzione di continuità. Hai uno screenshot del problema o qualcosa del genere? Grazie!
Tikhon Jelvis,

2
Nessun problema, ecco quello che ottengo con (setq powerline-default-separator 'arrow). Sto installando Carbon Emacs con Homebrew con la --srgbbandiera e (setq ns-use-srgb-colorspace t)nel mio .emacs.d.
Waymondo,

Tikhon, questa è una bella linea di modalità che hai lì. Potresti pubblicare l'intera sezione del formato linea modalità che hai parzialmente schermato? Grazie :-)
Ivan Vučica,

2
@ IvanVučica: grazie! È su GitHub, in due parti: un powerline.el modificato che contiene un sacco di forme tra cui scegliere ( curveè bello, ma lo uso diagonalora) e il mio .emacs stesso, che ha alcune impostazioni varie che ho trovato da qualche parte. Se sei così incline, puoi creare una tua copia powerline.ele aggiungere le tue forme di separatore attraverso l'arte ASCII per ottenere l'effetto esatto di cui hai bisogno :).
Tikhon Jelvis,

12

Come altri hanno già detto, powerline è il pacchetto che formatta la modeline in quel modo. La maggior parte dei temi di emacs, tuttavia, non definisce i colori per powerline (il che non è eccezionale). Un tema che fa è il colorato (e completo) moe-tema . Ha anche una modalità che cambia colore la sera per essere più facile per gli occhi. Sembra così:

tema tematico in gloriosa modalità magenta, ispirato alla powerline modeline

Le mie frecce nel powerline sembrano strane perché sto usando una versione senza patch del carattere Luxi Mono.


1

Le mie frecce nel powerline sembrano strane perché sto usando una versione senza patch del carattere Luxi Mono.

William Roe , a giudicare dal tuo screenshot sei su macOS. Come indicato nel commento di questo numero , dovrai aggiungere

(setq powerline-image-apple-rgb t)

ai tuoi file init. Ciò dovrebbe correggere il problema di colorazione con i separatori ("frecce"). Ha funzionato per me almeno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.