Cómo generar el código fuente resaltado en un archivo para usarlo fuera de vim

9

En mi lugar de trabajo, quiero hacer una presentación de un lenguaje personalizado que he desarrollado para resolver algunos problemas que tuvimos. Para un desarrollo más fácil, creé mi propio archivo de sintaxis vim para este lenguaje en particular.

Ahora, necesito presentarlo en otra computadora, que no tendrá ese archivo de sintaxis. Por lo que sé, incluso podría no tener vim instalado (pero lo dudo).

Sería perfecto si pudiera less -run archivo para obtener el mismo resaltado de sintaxis que hago en mi propia computadora.

Sin embargo, no sé cómo copiar y pegar mientras se conservan los colores (en el terminal de gnome en Debian), o cómo generar el archivo con su resaltado de sintaxis como caracteres de control sin procesar de vim. Tengo más confianza en encontrar una solución de vim, pero no tengo idea de qué buscar para hacer eso.

¿Conoce alguna forma de generar el archivo que abrió con su sintaxis resaltada como caracteres de control sin procesar ANSI en otro archivo?

DainDwarf
fuente

Respuestas:

13

Puede usar el :TOhtmlcomando que se entrega con Vim para crear una representación HTML del búfer (o la parte resaltada de la sintaxis). Entonces, su único requisito en el sistema de destino sería un navegador para mostrar el archivo capturado. Ver :help :TOhtmlpara más detalles.

Si insiste en generar secuencias de escape ANSI, probablemente podría modificar el complemento para hacerlo, pero supongo que sería un esfuerzo no trivial.

Ingo Karkat
fuente
3
¡OH DIOS MÍO! Eso es tan perfecto, desearía poder responder tu respuesta más de una vez.
DainDwarf
2

El programa vimpager incluye un script llamado "vimcat". Puede generar un archivo con resaltado de sintaxis de vim convertido a códigos de escape ansi.

(Auto promoción adicional: escribí un tenedor para neovim: nvimpager ).

Lucas
fuente
1

[EDITAR]: Acabo de notar que cat no hace el truco cuando usa vim y script, sin embargo, puede usar 'head'.

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

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

Si la máquina de presentación tiene un terminal de color disponible y está basado en * nix, puede grabar un script con

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

y luego solo

guest@demomachine$ cat demo.typescript

cat podría no funcionar con vim y script para este mismo problema, vea la edición anterior.

en la máquina de presentación. SUGERENCIA: tenga en cuenta el tamaño del terminal durante la grabación, debe ser más pequeño o del mismo tamaño que la máquina de demostración.

Script también le permite grabar una sesión de terminal completa, para que pueda grabar y reproducir una demostración usando scriptreplay.

Rock
fuente