0
from pygments.lexers import RstLexer
from pygments.formatters import TerminalFormatter
from pygments import highlight

output = highlight(source, RstLexer(), TerminalFormatter())

p = subprocess.Popen('less', stdin=subprocess.PIPE)
p.stdin.write(output)
p.stdin.close()
p.wait()

私がちょうどprint output-すべてが大丈夫ですが、配管が壊れてハイライトされているとき…何かアイデアはありますか?

例:

例

4

1 に答える 1

3

これlessはPythonのせいではなく、のせいです。スイッチで実行lessします。-R

-Rまた--RAW-CONTROL-CHARS

と同様-rですが、ANSI「カラー」エスケープシーケンスのみが「生」形式で出力されます。とは異なり-r、ほとんどの場合、画面の外観は正しく維持されます。ANSI「カラー」エスケープシーケンスは、次の形式のシーケンスです。

ESC [ ... m

ここで、「...」は0個以上の色指定文字です。画面の外観を追跡するために、ANSIカラーエスケープシーケンスはカーソルを移動しないと想定されています。環境変数LESSANSIENDCHARSをカラーエスケープシーケンスを終了できる文字のリストに設定することにより、「m」以外の文字がANSIカラーエスケープシーケンスを終了できると考えることを少なくすることができます。また、環境変数LESSANSIMIDCHARSを表示可能な文字のリストに設定することで、ESCとmの間に標準以外の文字が表示される可能性を少なくすることができます。

于 2013-01-29T00:36:11.750 に答える