Jak sprawić, by Vim wyświetlał kolory zgodnie z kodami kolorów?


59

Krótko mówiąc, jestem w celu zastąpienia lessz vim( vimpager). Mam ustawienia skryptów, które wypluwają kolory (i odważnie i wszystko ładnie), kiedy tylko mogą. lessrozumie kody kolorów i ładnie je wyświetla. Jak mogę vimparsować kody i wyświetlać kolory / odwagę w taki lesssposób?

Odpowiedzi:


44

Dwie odpowiedzi:

Krótko: chcesz użyć skryptu vim AnsiEsc.vim . Ukryje rzeczywiste sekwencje specjalne ANSI w twoim pliku i użyje podświetlania składni, aby odpowiednio pokolorować tekst. Problem z używaniem tego na pager polega na tym, że vim musi rozpoznać, kiedy tego użyć. Nie jestem pewien, czy po prostu zawsze można go załadować, czy też będzie on kolidował z innymi plikami składni. Będziesz musiał z tym eksperymentować.

Długa odpowiedź: najlepsze, na co możesz liczyć, to częściowe, nieprzenośne rozwiązanie. Mniej faktycznie nie rozumie sekwencji ucieczki terminala, ponieważ są one w dużej mierze zależne od terminalu, ale mniej może je rozpoznać (ich podzbiór) i będzie wiedział, jak je przekazać do terminala, jeśli użyjesz -r(lub-R) opcja. Terminal interpretuje sekwencje specjalne i zmienia atrybuty tekstu (kolor, pogrubienie, podkreślenie ...). Vim, będąc edytorem, a nie pageriem, nie przekazuje po prostu surowych znaków kontrolnych do terminala. Musi je w jakiś sposób wyświetlić, aby można było je edytować. Możesz użyć innych funkcji vima, takich jak ukrywanie i podświetlanie składni, aby ukryć sekwencje i użyć ich do ustawiania kolorów tekstu, jednak zawsze będzie on obsługiwał tylko podzbiór sekwencji terminali i prawdopodobnie nie będzie działał na niektórych terminalach .

To naprawdę tylko jeden z wielu problemów, na które napotkasz, gdy spróbujesz użyć edytora tekstu jako pager.


Mówiąc w skrócie, musisz napisać część emulatora terminala w Vimie, część, która obsługuje sekwencje specjalne terminala, które są obecne na twoim wejściu.
Gilles,

Dzięki, myślę, że się poddaję. Jeśli nie jest to łatwe, nie ma już większego sensu.
phunehehe

1
@JanHlavacek link jest zepsuty :(
Nitrodist

19
@Nitrodist: less -r FILE( źródło )
Adobe

1
Wygląda na to, że link Jana przeniósł się na linux-tips.com/t/how-to-enable-syntax-highlighting-in-less/208
Timothy Zorn

2

Teraz z vimem 8 możesz używać trybu terminala, :terminala następnie w tym terminalu zrób cat myfilei wróć do normalnego trybu z Ctrl-w N.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.