Como fazer o Vim exibir as cores conforme indicado pelos códigos de cores?

48

Em suma, estou tentando substituir less por vim ( vimpager ). Eu tenho configurações para scripts para cuspir cores (e negrito e tudo de bom) sempre que puderem. less entende os códigos de cores e os exibe bem. Como posso fazer vim analisar os códigos e exibir as cores / ousadia da mesma forma que o less ?

    
por phunehehe 20.02.2011 / 05:19

1 resposta

33

Duas respostas:

Um pequeno: você quer usar o script vim AnsiEsc.vim . Ele ocultará as seqüências de escape ANSI reais em seu arquivo e usará realce de sintaxe para colorir o texto adequadamente. O problema em usar isto em um pager é que você terá que fazer o vim reconhecer quando usar isto. Não tenho certeza se você pode simplesmente carregá-lo ou se entrará em conflito com outros arquivos de sintaxe. Você terá que experimentar isso.

Uma resposta longa: O melhor que você pode esperar é uma solução parcial não portátil. Menos não entende realmente as seqüências de escape do terminal, uma vez que elas são em grande parte dependentes do terminal, mas menos podem reconhecer (um subconjunto delas), e saberão passá-las para o terminal, se você usar o -r (ou -R ) opção. O terminal interpretará as seqüências de escape e alterará os atributos do texto (cor, negrito, sublinhado ...). O Vim, sendo um editor em vez de um pager, não passa simplesmente caracteres brutos de controle para o terminal. Ele precisa exibi-las de alguma forma, para que você possa editá-las. Você pode usar outros recursos do vim, como ocultação e realce de sintaxe para ocultar as sequências e usá-las para definir as cores do texto, no entanto, ele sempre manipulará apenas um subconjunto das sequências de terminal e provavelmente não funcionará em alguns terminais .

Este é apenas um dos muitos problemas que você enfrentará quando tentar usar um editor de texto como um pager.

    
por 20.02.2011 / 19:26