Vim può interpretare i codici di escape del colore del terminale?


29

Molti programmi CLI generano testo ben evidenziato. Mentre la maggior parte di essi verifica se l'output sta andando a un file, alcuni includono i codici di escape del terminale. Mi piace l'output con i codici di escape, ma visualizzare questi file in Vim è doloroso.

Vim può interpretare questi codici di escape nei colori previsti? In caso contrario, Vim può essere impostato per ignorare questi codici di escape?

Risposte:


28

Esistono vari plugin che ti consentono di visualizzare i colori ANSI attraverso i codici di escape:


Se si desidera rimuovere tutti i codici di escape, è possibile utilizzare:

:%s/<1b>\[[0-9;]*m//g

Nota: non<1b> è un testo letterale, è il carattere di escape, usa + seguito da per inserirlo (può anche apparire come , a seconda delle tue impostazioni).CtrlvEsc^[display

Oppure puoi rimuoverli con sed; per esempio:

$ sed 's|\x1b\[[;0-9]*m||g' somefile | vi -

0

Se hai un vim sufficientemente moderno che ha la funzione + terminal, puoi farlo :term cat somefilee otterrai un buffer con tutti i codici terminali interpretati.

Questo potrebbe funzionare meglio su file di grandi dimensioni rispetto ad esempio a Colorizer, il che ha reso il mio vim insolitamente lento quando l'ho lasciato libero su un file di 6000 righe.

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.