更新:CPANのHTML :: FromANSIモジュールperl
を使用してメソッドを追加しました。これをインストールするには、単にディレクトリに抽出し、そのディレクトリからroot:として実行します。リクエストに合った特定の機能は、というスクリプトです。興味深いことに、elisp-shellスクリプトと同じように、ファイル名のオーバーレイ後に同じ色の消失が表示されます。使用例を次に示します。 perl -MCPAN -e 'install HTML::FromANSI'
ansi2html
k
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
これがhtml出力です。Firefoxで見られるように:
次に、emacs elisp-shellスクリプトを使用する方法を示します ...例として、htmlizeと呼ばれる... Emacsを実行する必要はありません。
私はもともと黒い背景でテストしましたが、何らかの理由で、導入されたエスケープコードの1つで白い背景がうまく再生さ\e[K
れないことに気付きました。これはERASE_LINE (端末出力の現在の行を消去)のようです。このエスケープコードを削除する行を追加しました。白い背景で動作するようになりました。
以下は、さらに色を強調ls
するgrep
ためにパイプされた色強調出力の例です。
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
これはelsip-shell
スクリプトです。
#!/bin/sh
":"; exec /usr/bin/emacs -Q --script "$0" -- "$@" # -*-emacs-lisp-*-
(require 'ansi-color) (require 'htmlize)
(find-file (setq path-in (cadr argv)))
(ansi-color-apply-on-region (point-min) (point-max))
(switch-to-buffer (buffer-name (htmlize-buffer)))
(write-file (concat path-in ".html"))
Firefoxでのhtml出力のサンプルを次に示します。時間があれば、オーバーレイするANSIコードの問題を詳しく調べます。ここで、赤いk
sは緑のファイル名と重複していますが、それはgrepのテスト正規表現を急いで選択したためにのみ存在し\e[K
ます...