Como gerar código-fonte destacado em um arquivo para usar fora do vim

9

No meu local de trabalho, quero fazer uma apresentação de uma linguagem personalizada que desenvolvi para solucionar alguns problemas que tivemos. Para facilitar o desenvolvimento, criei meu próprio arquivo de sintaxe vim para esse idioma específico.

Agora, preciso apresentá-lo em outro computador, que não terá esse arquivo de sintaxe. Pelo que sei, pode até não ter o vim instalado (mas duvido).

Seria perfeito se eu pudesse obter less -rum arquivo para obter a mesma sintaxe destacando que faço no meu próprio computador.

No entanto, eu não sei como copiar e colar enquanto preservo as cores (no terminal do gnome no Debian) ou como gerar o arquivo com sua sintaxe destacada como caracteres de controle brutos do vim. Estou mais confiante em encontrar uma solução do vim, mas não tenho ideia do que procurar para fazer isso.

Você conhece alguma maneira de produzir o arquivo que você abriu com sua sintaxe destacada como ANSI raw-control-chars em outro arquivo?

DainDwarf
fonte

Respostas:

13

Você pode usar o :TOhtmlcomando que acompanha o Vim para criar uma representação HTML do buffer (sintaxe destacada) (ou partes dele). Então, seu único requisito no sistema de destino seria um navegador para exibir o arquivo capturado. Veja :help :TOhtmlpara detalhes.

Se você insistir em produzir seqüências de escape ANSI, provavelmente poderá modificar o plug-in para fazer isso, mas acho que seria um esforço não trivial.

Ingo Karkat
fonte
3
OH MEU DEUS! É tão perfeito que gostaria de poder responder sua resposta mais de uma vez.
DainDwarf
2

O programa vimpager inclui um script chamado "vimcat". Ele pode gerar um arquivo com a sintaxe destacada do vim convertida em códigos de escape ansi.

(Autopromoção adicional: escrevi um garfo para o neovim: nvimpager .)

Lucas
fonte
1

[EDIT]: Acabei de notar que o gato não faz o truque ao usar o vim e o script, mas você pode usar 'head'.

guest@demomachine$ head -c [terminalsize] demo.typescript

EXAMPLE: guest@demomachine$ head -c 3710 demo.typescript

Se a máquina de apresentação tiver um terminal colorido disponível e for baseado em * nix, você poderá gravar um script com

you@yourmachine$ script -c "vim [sourcefile]" demo.typescript

e então apenas

guest@demomachine$ cat demo.typescript

O gato pode não funcionar com o vim e o script para esse mesmo problema, veja a edição acima.

na máquina de apresentação. DICA: observe o tamanho do terminal durante a gravação, ele deve ser menor ou igual ao tamanho da máquina de demonstração.

O script também permite gravar uma sessão de terminal inteira, para que você possa gravar e reproduzir uma demonstração usando o script splay.

Rocha
fonte