強調表示されたソースコードをファイルに出力してvim外で使用する方法


9

私の職場では、私たちが抱えていたいくつかの問題を解決するために開発したカスタム言語のプレゼンテーションをしたいと思います。開発を容易にするために、この特定の言語用に独自のvim構文ファイルを作成しました。

今、私はそれを別のコンピュータに提示する必要がありますが、その構文ファイルはありません。私が知っていることすべてのために、それはvimがインストールされていないかもしれません(しかし私はそれを疑います)。

less -r自分のコンピューターで行うのと同じ構文の強調表示をファイルで取得できれば完璧です。

ただし、(Debianのgnomeからのターミナルで)色を保持しながらコピーして貼り付ける方法、またはvimから生の制御文字として構文を強調表示してファイルを出力する方法がわかりません。私はvimから解決策を見つけることに自信がありますが、それを行うために何を探すべきかわかりません。

開いたファイルの構文を強調表示して別のファイルのANSI raw-control-charsとして出力する方法を知っていますか?

回答:


13

:TOhtmlVimに付属のコマンドを使用して、(構文が強調表示されている)バッファー(またはその一部)のHTML表現を作成できます。次に、ターゲットシステムでの唯一の要件は、キャプチャしたファイルを表示するブラウザです。詳細:help :TOhtmlについては、を参照してください。

ANSIエスケープシーケンスの出力を主張する場合は、おそらくプラグインを変更してそれを行うことができますが、それは簡単な作業ではないでしょう。


3
何てことだ!それはとても完璧です。私はあなたの答えを何度も上げられるといいのですが。
DainDwarf、2015

2

プログラムvimpagerには、「vimcat」と呼ばれるスクリプトが含まれています。それは、ANSIエスケープコードに変換されたvimの構文の強調表示でファイルを出力できます。

(追加の自己宣伝:neovimのフォークを書きました:nvimpager


1

[編集]:vimとスクリプトを使用する場合、猫がうまく機能しないことに気づきましたが、「head」を使用できます。

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

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

プレゼンテーションマシンにカラーターミナルがあり、* nixベースの場合、次のコマンドでスクリプトを記録できます。

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

そして、ちょうど

guest@demomachine$ cat demo.typescript

catは、この非常に問題のあるvimおよびスクリプトでは機能しない可能性があります。上記の編集を参照してください。

プレゼンテーションマシンで。ヒント:記録中の端末サイズに注意してください。デモ機と同じか、それよりも小さくする必要があります。

スクリプトを使用すると、ターミナルセッション全体を記録できるため、scriptreplayを使用してデモを記録および再生できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.