Come generare il codice sorgente evidenziato in un file da usare al di fuori di vim


9

Nel mio posto di lavoro, voglio fare una presentazione di un linguaggio personalizzato che ho sviluppato per risolvere alcuni problemi che abbiamo avuto. Per uno sviluppo più semplice, ho creato il mio file di sintassi vim per questa lingua particolare.

Ora, devo presentarlo su un altro computer, che non avrà quel file di sintassi. Per quanto ne so, potrebbe anche non aver installato VIM (ma ne dubito).

Sarebbe perfetto se potessi less -run file per ottenere la stessa sintassi evidenziando che faccio sul mio computer.

Tuttavia, non so come copiare e incollare preservando i colori (nel terminale da gnome su Debian), o come produrre il file con la sua evidenziazione della sintassi come caratteri di controllo non elaborati da VIM. Sono più fiducioso nel trovare una soluzione da Vim, ma non ho idea di cosa cercare per farlo.

Conosci un modo per generare il file che hai aperto con l'evidenziazione della sintassi come caratteri ANSI raw-control-char in un altro file?

Risposte:


13

È possibile utilizzare il :TOhtmlcomando fornito con Vim per creare una rappresentazione HTML del buffer (sintassi evidenziato) (o parti di esso). Quindi, il tuo unico requisito sul sistema di destinazione sarebbe un browser per visualizzare il file acquisito. Vedi :help :TOhtmlper i dettagli.

Se insisti nel fornire sequenze di escape ANSI, potresti probabilmente modificare il plugin per farlo, ma immagino che sarebbe uno sforzo non banale.


3
DIO MIO! È così perfetto, vorrei poterti rispondere più di una volta.
DainDwarf,

2

Il programma vimpager include uno script chiamato "vimcat". Può generare un file con l'evidenziazione della sintassi di vim convertita in codici di escape ansi.

(Autopromozione aggiuntiva: ho scritto un fork per neovim: nvimpager .)


1

[EDIT]: Ho appena notato che cat non fa il trucco quando usi vim e script, puoi comunque usare 'head'.

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

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

Se la macchina di presentazione ha un terminale a colori disponibile ed è basata su * nix, è possibile registrare uno script con

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

e poi solo

guest@demomachine$ cat demo.typescript

cat potrebbe non funzionare con vim e script proprio per questo problema, vedi modifica sopra.

sulla macchina di presentazione. SUGGERIMENTO: attenzione alle dimensioni del terminale durante la registrazione, dovrebbe essere più piccolo o uguale alla macchina demo.

Script consente anche di registrare un'intera sessione terminale, in modo da poter registrare e riprodurre una demo usando scriptreplay.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.