次のように、端末にエラーをカラフルに表示したいと思います。
3 に答える
IPythonは、指定した例のように、Python コードとスタック トレースを構文で強調表示します (実際には、Python スタック トレースです)。
リンク先の例は、実際にはユーザーのコンソールで構文が強調表示されたり、シェルからサポートされたりするのではなく、アップロード後にスタック オーバーフロー Web サイトによって強調表示されます。
ある程度の汎用的な構文強調表示を行う初心者向けの UNIX シェルが必要な場合は、 fish shellをお勧めします。
残念ながら、完全な一般的な解決策はありません。しかし、機能する一般的な方法がいくつかあります。
GRCは、Generic Colouriserの略で、ログファイルまたはコマンドの出力を美化するためのものです。主要なディストリビューションにパッケージ化されています。私はそれを使用して、make出力を非常にうまく色付けしました。GRCは通常、「grccomand」などのエイリアスを持つ一般的なコマンドに使用されます。他のカラーライザーがあり、ウェブサイトには独自のカラーライザーがある場合があります。
非常に多くのプログラムが、従来のコマンドラインスイッチ--color=autoを使用しています。--color = alwaysは、非対話型シェルからでも色を発生させます。これは、less -Rなどの端末コード対応コマンドを使用して、ログに記録されたコマンドを後で確認するのに役立ちます。
テキストが中途半端な既知のプログラムからのものであり、ログに記録されたりファイルに保存されたりした場合、テキストエディタのVimまたはEmacsは非常にスマートな強調表示を行うことができます。他の編集者/アイデアもそうすることができますが、どれもそれほど包括的ではありません。それらには、構成ファイルの一般的な強調表示スキームと、「Quake[1-3]構成ファイル」などの非常にあいまいになる特定のファイルタイプがあります。そしてもちろん、編集者が認識するハイライトされた領域の色を変更するために、各編集者には多くの配色があります。これはおそらく、本当に良いハイライトを取得するために最もよく使用される方法です。
もちろん、tputや実際のエスケープコード、ipythonなどの個々のプログラムを使用して、端末に手動で色を入力する方法があります。あなたはその質問をしませんでした、しかしあなたはあなたの好きな解決策としてそのような答えを選びました:(
予想される一般的な解決策は、端末の標準エラーを色付けすることです。残念ながら、多くの複雑さのためにこれを行う方法はありません。たとえば、プロンプトが標準エラーに送信されます。
次のサンプル Perl スクリプトを試してください。
use Term::ANSIColor;
print "Hello "
.color("green")
."world"
.color("reset")
."\n"
またはシェルワンライナーとして:
perl -e 'use Term::ANSIColor; print "Hello ".color("green")."world".color("reset")."\n"'
Term::ANSIColorモジュールをインストールする必要があることに注意してください。