Comment sortir le code source en surbrillance dans un fichier pour l'utiliser en dehors de vim

9

Sur mon lieu de travail, je veux faire une présentation d'un langage personnalisé que j'ai développé pour résoudre certains problèmes que nous avons rencontrés. Pour faciliter le développement, j'ai créé mon propre fichier de syntaxe vim pour cette langue particulière.

Maintenant, je dois le présenter sur un autre ordinateur, qui n'aura pas ce fichier de syntaxe. Pour autant que je sache, il se peut même que vim ne soit pas installé (mais j'en doute).

Ce serait parfait si je pouvais less -run fichier pour obtenir cette même syntaxe en soulignant que je fais sur mon propre ordinateur.

Cependant, je ne sais pas comment copier / coller tout en préservant les couleurs (dans le terminal de gnome sur Debian), ou comment sortir le fichier avec sa syntaxe en surbrillance en tant que caractères de contrôle bruts de vim. Je suis plus confiant dans la recherche d'une solution de vim, mais je n'ai aucune idée de ce qu'il faut rechercher pour cela.

Connaissez-vous un moyen de sortir le fichier que vous avez ouvert avec sa coloration syntaxique en tant que caractères de contrôle brut ANSI dans un autre fichier?

DainDwarf
la source

Réponses:

13

Vous pouvez utiliser la :TOhtmlcommande livrée avec Vim pour créer une représentation HTML du tampon (syntaxe mise en évidence) (ou de parties de celui-ci). Ensuite, votre seule exigence sur le système cible serait un navigateur pour afficher le fichier capturé. Voir :help :TOhtmlpour plus de détails.

Si vous insistez pour produire des séquences d'échappement ANSI, vous pouvez probablement modifier le plugin pour le faire, mais je suppose que ce serait un effort non trivial.

Ingo Karkat
la source
3
OH MON DIEU! C'est tellement parfait que j'aimerais pouvoir répondre plus d'une fois à votre réponse.
DainDwarf
2

Le programme vimpager comprend un script appelé "vimcat". Il peut sortir un fichier avec la syntaxe de vim highlighing convertie en codes d'échappement ansi.

(Auto-promotion supplémentaire: j'ai écrit une fourchette pour neovim: nvimpager .)

Lucas
la source
1

[EDIT]: Je viens de remarquer que cat ne fait pas l'affaire lors de l'utilisation de vim et script, vous pouvez cependant utiliser 'head'.

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

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

Si la machine de présentation dispose d'un terminal couleur et est basée sur * nix, vous pouvez enregistrer un script avec

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

puis juste

guest@demomachine$ cat demo.typescript

cat peut ne pas fonctionner avec vim et script pour ce problème, voir la modification ci-dessus.

sur la machine de présentation. CONSEIL: faites attention à la taille du terminal pendant l'enregistrement, elle doit être plus petite ou de même taille que la machine de démonstration.

Le script vous permet également d'enregistrer une session de terminal entière, de sorte que vous pouvez enregistrer et jouer une démo à l'aide de scripttreplay.

Roche
la source