it-swarm-eu.dev

Jak vyrobit barvy displeje Vim podle barevných kódů?

Stručně řečeno, snažím se nahradit less za vim (vimpager). Mám nastavení pro skripty, aby vyplivovaly barvy (a tučné a všechno pěkné), kdykoli to půjde. less chápe barevné kódy a pěkně je zobrazuje. Jak mohu provést vim analyzovat kódy a zobrazovat barvy/tučnost tak, jak to dělá less?

62
phunehehe

Dvě odpovědi:

Krátký: chcete použít skript vim AnsiEsc.vim . Skryje skutečné ANSI únikové sekvence ve vašem souboru a pomocí zvýraznění syntaxe vhodně zabarví text. Problém s použitím tohoto v pageru je, že budete muset vim rozpoznat, kdy jej použít. Nejsem si jistý, zda jej můžete jednoduše načíst, nebo zda bude v konfliktu s jinými soubory syntaxe. Budete s tím muset experimentovat.

Dlouhá odpověď: To nejlepší, v co můžete doufat, je částečné nepřenosné řešení. Méně vlastně nerozumí únikovým sekvencím terminálu, protože tyto jsou do značné míry závislé na terminálu, ale méně je dokáže rozpoznat (jejich podmnožina) a bude vědět, že je předá terminálu, pokud použijete -r (nebo -R) možnost. Terminál interpretuje únikové sekvence a změní atributy textu (barva, tučné, podtržení ...). Vim, který je spíše editorem než pagerem, nepředává terminálu pouze hrubé kontrolní znaky. Musí je nějakým způsobem zobrazit, abyste je mohli skutečně upravovat. K skrytí sekvencí a jejich použití k nastavení barev textu můžete použít další funkce vim, jako je skrytí a zvýraznění syntaxe, vždy však bude zpracovávat pouze podmnožinu terminálových sekvencí a pravděpodobně nebude fungovat na některých terminálech. .

To je opravdu jen jeden z mnoha problémů, na které narazíte, když se pokusíte použít textový editor jako pager.

45
Jan Hlavacek

Nyní s vim 8 můžete použít režim terminálu :terminal a pak v tomto terminálu do cat myfile a vraťte se do normálního režimu pomocí Ctrl-w N. Tímto se správně zobrazí barevné kódy ANSI. Automatizací těchto kroků a čtením ze standardního vstupu namísto souboru by mělo být možné použít vim k nahrazení méně.

4
rubystallion