So geben Sie markierten Quellcode in eine Datei aus, um ihn außerhalb von vim zu verwenden

9

An meinem Arbeitsplatz möchte ich eine benutzerdefinierte Sprache präsentieren, die ich zur Lösung einiger Probleme entwickelt habe. Zur einfacheren Entwicklung habe ich meine eigene Vim-Syntaxdatei für diese bestimmte Sprache erstellt.

Jetzt muss ich es auf einem anderen Computer präsentieren, der diese Syntaxdatei nicht hat. Nach allem, was ich weiß, ist vim möglicherweise nicht installiert (aber ich bezweifle es).

Es wäre perfekt, wenn ich less -reine Datei verwenden könnte, um dieselbe Syntax hervorzuheben, die ich auf meinem eigenen Computer mache.

Ich weiß jedoch nicht, wie man entweder kopiert und einfügt, während die Farben erhalten bleiben (im Terminal von gnome unter Debian), oder wie man die Datei mit ihrer Syntax ausgibt, die als Rohsteuerzeichen von vim hervorgehoben wird. Ich bin zuversichtlicher, eine Lösung von vim zu finden, aber ich habe keine Ahnung, wonach ich suchen soll, um das zu tun.

Kennen Sie eine Möglichkeit, die geöffnete Datei mit der Syntax, die als ANSI-Rohsteuerzeichen in einer anderen Datei hervorgehoben ist, auszugeben?

DainDwarf
quelle

Antworten:

13

:TOhtmlMit dem im Lieferumfang von Vim enthaltenen Befehl können Sie eine HTML-Darstellung des (Syntax hervorgehobenen) Puffers (oder von Teilen davon) erstellen. Dann wäre Ihre einzige Anforderung auf dem Zielsystem ein Browser, um die erfasste Datei anzuzeigen. Siehe :help :TOhtmlfür Details.

Wenn Sie darauf bestehen, ANSI-Escape-Sequenzen auszugeben, könnten Sie wahrscheinlich das Plugin ändern, um dies zu tun, aber ich denke, das wäre eine nicht triviale Anstrengung.

Ingo Karkat
quelle
3
OH MEIN GOTT! Das ist einfach so perfekt, ich wünschte, ich könnte Ihre Antwort mehr als einmal verbessern.
DainDwarf
2

Der Programm- Vimpager enthält ein Skript namens "vimcat". Es kann eine Datei mit der Syntax Highlighing von vim ausgeben, die in Ansi-Escape-Codes konvertiert wurde.

(Zusätzliche Eigenwerbung: Ich habe eine Gabel für neovim geschrieben: nvimpager .)

Lucas
quelle
1

[BEARBEITEN]: Gerade bemerkt, dass Katze bei der Verwendung von vim und script nicht den Trick macht, Sie können jedoch 'head' verwenden.

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

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

Wenn auf der Präsentationsmaschine ein Farbterminal verfügbar ist und * nix-basiert ist, können Sie ein Skript mit aufzeichnen

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

und dann einfach

guest@demomachine$ cat demo.typescript

cat funktioniert möglicherweise nicht mit vim und script für genau dieses Problem, siehe oben bearbeiten.

auf der Präsentationsmaschine. TIPP: Beachten Sie, dass die Terminalgröße während der Aufnahme kleiner oder gleich groß wie die des Demo-Geräts sein sollte.

Mit Script können Sie auch eine ganze Terminalsitzung aufzeichnen, sodass Sie eine Demo mit scriptreplay aufnehmen und abspielen können.

Felsen
quelle