sviluppo-web-qa.it

Come rendere i colori di visualizzazione di Vim come indicato dai codici colore?

In breve, sto cercando di sostituire less con vim (vimpager). Ho impostazioni per gli script per sputare colori (e grassetto e tutto bene) ogni volta che possono. less comprende i codici colore e li visualizza correttamente. Come posso fare in modo che vim analizzi i codici e visualizzi i colori/il grassetto come fa less?

62
phunehehe

Due risposte:

Una breve: si desidera utilizzare lo script vim AnsiEsc.vim . Nasconderà le sequenze di escape ANSI effettive nel file e utilizzerà l'evidenziazione della sintassi per colorare il testo in modo appropriato. Il problema con l'utilizzo di questo in un cercapersone è che dovrai far riconoscere a Vim quando utilizzarlo. Non sono sicuro se puoi semplicemente caricarlo sempre o se sarà in conflitto con altri file di sintassi. Dovrai sperimentarlo.

Una risposta lunga: il meglio che puoi sperare è una soluzione parziale non portatile. Less in realtà non comprende le sequenze di escape del terminale, poiché queste sono in gran parte dipendenti dal terminale, ma less può riconoscerle (un sottoinsieme di) e saprà passarle attraverso il terminale, se si utilizza -r (o -R) opzione. Il terminale interpreta le sequenze di escape e modifica gli attributi del testo (colore, grassetto, sottolineato ...). Vim, essendo un editor anziché un cercapersone, non passa semplicemente i caratteri di controllo non elaborati al terminale. Deve visualizzarli in qualche modo, quindi puoi effettivamente modificarli. Puoi usare altre funzionalità di vim, come l'occultamento e l'evidenziazione della sintassi per nascondere le sequenze e usarle per impostare i colori del testo, tuttavia, gestirà sempre solo un sottoinsieme delle sequenze di terminali e probabilmente non funzionerà su alcuni terminali .

Questo è davvero solo uno dei tanti problemi che incontrerai quando proverai ad usare un editor di testo come cercapersone.

45
Jan Hlavacek

Ora con vim 8 è possibile utilizzare la modalità terminale :terminal e poi in quel terminale fai cat myfile e tornare alla modalità normale con Ctrl-w N. Questo visualizzerà correttamente i codici colore ANSI. Automatizzando questi passaggi e leggendo l'input standard anziché un file, dovrebbe essere possibile utilizzare vim per sostituire meno.

4
rubystallion