O realce de cor da sintaxe do Vim é perdido na linha de comando

3

Se eu executar os seguintes comandos de dentro de uma sessão vim que está visitando um arquivo de código, a cópia impressa resultante é destacada em cores :

:syntax on
:hardcopy >/path/to/hardcopy.ps

Mas se eu tentar a mesma sequência de comandos a partir da linha de comando (shell Unix), a cópia impressa resultante é não colorida -highlighted (recebo apenas texto preto, às vezes em negrito ou sublinhado, etc. ., sobre um fundo branco):

% vim -c ':syntax on' -c ':hardcopy >/path/to/hardcopy.ps' -c quit /path/to/original

Alguma idéia de como corrigir esse problema?

    
por kjo 18.12.2012 / 00:37

2 respostas

1

Eu suspeito que o que está em questão aqui é que a colorização do Vim é um tipo de hack integrado ao código de exibição. Note que, por exemplo, quando você está pulando em um arquivo grande, às vezes a coloração estará errada, porque o Vim tenta não processar o arquivo inteiro ao aplicar suas correspondências de padrão de "região" hierárquica. Além disso, se o seu terminal não suportar cores, o Vim não imprimirá cores ou gerará HTML colorido, mesmo que esses destinos não tenham nada a ver com o terminal.

Uma vez eu tentei transformar o Vim em um back-end para fazer realce de sintaxe on-the-fly sob CGIT, para visualizar arquivos em um repositório GIT. Eu tentei vários hacks para tentar obter o Vim para produzir saída em modo de lote, mas no final eu desisti.

Mas parei de tentar usar um utilitário como expect . Scriptar o Vim com expect é algo que pode funcionar, desde que você também minta e diga que está falando com um Xterm colorido.

    
por 02.04.2013 / 10:02
0

Descobri que a variável de ambiente TERM tem um impacto nas cores de saída do PS usadas.

Você pode tentar isso:

TERM=xterm-256color vim '+hardcopy >out.ps' +q src_file
    
por 25.02.2015 / 11:53

Tags