Como posso executar um gvim headless para obter o código realçado de sintaxe convertido em HTML?

Como posso executar um gvim headless para obter o código realçado de sintaxe convertido em HTML?

Quero gerar arquivos HTML em lote para mostrar alguns esquemas de cores do gvim em ação. Peguei minha solução atual do script emhttp://code.google.com/p/vimcolorschemetest/, mas isso abrirá uma janela do gvim para cada esquema de cores que desejo processar.

Até agora, a única maneira que encontrei de evitar as novas janelas irritantes que aparecem a cada segundo é iniciar um VNCserver e definir a DISPLAYvariável de ambiente como a do VNCserver para que todas as janelas gvim sejam enviadas para o display dentro da sessão VNC.

No entanto, gostaria de saber se existe uma maneira de evitar toda a configuração do VNC e apenas executar uma instância gvim sem cabeça que faz a conversão e sai, sem que nenhuma janela seja realmente exibida.

Estou usando Linux, aliás.

Responder1

vim -E -c "TOhtml" -c "w" -c "qa!" -- test.c >/dev/null

Use vim, ele carregará mais rápido que gvim. Você pode acelerar um pouco o tempo de carregamento usando -Xou uma versão No-X do vim.

Para silenciá-lo, use >/dev/null. Mas isso fará vimreclamar ( Vim: Warning: Output is not to a terminal) e pausar um pouco, por isso usamos -E.

Poderíamos ter tentado -E -s, mas de alguma forma não consigo usar :TOhtmlcorretamente, o resultado não tem cor e é uma única linha.

Eu modifico um pouco o comando usando -R -c "set noreadonly"ou melhor -nsozinho. Isso evita a mensagem de aviso usual ao abrir um arquivo que já possui um arquivo de troca. Não há nada específico para evitar falhas ao abrir um arquivo não gravável (por exemplo, de propriedade do root).

Veja meuvimcatrepositório no GitHub, para ver um exemplo de uso do realce de sintaxe do vim usado em um terminal.

Responder2

Eu realmente não posso dizer se o seu problema é que o Vim abre muitas janelas ao mesmo tempo ou que abre qualquer janela ...

Não posso ajudá-lo neste último caso, no entanto, em qualquer Vim mais recente, você pode fazer algo assim (muito primitivo, provavelmente pode ser muito mais agradável):

# gvim -c TOhtml -c w -c q -c q test.c

que criará um test.c.xhtml baseado no arquivo test.c usando o esquema de cores atual. Então, talvez outro -c para mudar as cores, coloque tudo em um shell script...

EDITAR:

sem que nenhuma janela seja realmente exibida.

Sim, então, sou um idiota. Por favor, desconsidere esta postagem.

informação relacionada