Mostra gli spazi vuoti finali su emacs solo su linee non vuote
-
06-07-2019 - |
Domanda
In questo momento sto usando:
(setq show-trailing-whitespace t)
Nel mio .emacs
per mostrare gli spazi bianchi finali per la mia modalità CC. Non riesco a capire come farlo non mostrare il carattere degli spazi bianchi solo per le righe degli spazi bianchi.
Le righe vuote che separano il codice di rientro a volte sono rientrate a livello di codice e talvolta non rientrano affatto, e non voglio attirare la mia attenzione su una riga che non mi interessa cambiare.
Vorrei attenermi ai moduli emacs integrati, ma sono disposto a utilizzare whitespace. el ma non è chiaro come configurarlo per farlo.
Soluzione
Poiché desideri utilizzare i moduli integrati, ti consiglio di utilizzare whitespace.el collegamento specificato, poiché viene fornito con Emacs 23. Questa risposta funziona quando si utilizza quello spazio bianco.
Finché hai 'trailing
nella tua variabile ' whitespace-style
(che è di default), la seguente modifica all'espressione regolare per ciò che indica " ; posteriore " gli spazi bianchi dovrebbero darti quello che vuoi:
(setq whitespace-trailing-regexp
"\\b\\(\\(\t\\| \\|\xA0\\|\x8A0\\|\x920\\|\xE20\\|\xF20\\)+\\)<*>quot;)
Nota: È solo il valore predefinito, con \ b
anteposto, che indica che lo spazio bianco dovrebbe seguire una parola.
Altri suggerimenti
Con
" \\ b. * \\ (\\ (\ t \\ | \\ | \ xA0 \\ | \ x8A0 \\ | \ x920 \\ | \ xE20 \\ | \ xF20 \ \) + \\) $ "
la parola non ha bisogno di essere direttamente davanti agli spazi bianchi finali ma ci può essere ad es. i segni di punteggiatura tra di loro (ovvero questo evidenzia anche gli spazi bianchi finali dietro i caratteri non di parole).
Modifica:
Usando
" \\ b. *? \\ (\\ (\ t \\ | \\ | \ xA0 \\ | \ x8A0 \\ | \ x920 \\ | \ xE20 \\ | \ xF20 \\) + \\) $ ")
evidenzia tutto gli spazi bianchi finali e quindi elimina l'inconveniente menzionato nel commento n. 1.