web-dev-qa-db-ja.com

崇高なテキスト3のメイクから色付きのビルド出力を取得する方法?

どのようにしてST3ビルド出力ウィンドウに色を入れることができますか?

ビルド出力を色分けするためにgccfilterを使用していますが、ST3は生のエスケープシーケンスを表示するだけです。それらを処理させる方法はありますか?またはgccfilterを削除して、ST3に出力を色付けするだけです(たとえば、警告とエラーのgrepだけで問題ありません)?

19
Yeraze

最近のバージョンのST3のMakefileビルドシステム( Make.sublime-build file で説明)には、カラー化された出力を生成する構文定義がすでに含まれています。

これに満足できない場合、ANSIカラーをターミナルで生成するビルドシステムがあり、それらをSublime Text 3のビルド出力パネルに表示したい場合に、代替の一般的に機能するアプローチとして次のことができます。 。

これは私がRSpecのSublime Text 3インストールでそれを行った方法ですが、通常のコンソール/ TTYで色を生成するツールでどのような場合でも完全に適用できると思います。

1。 TTYに出力していない場合でも、ビルドシステムに色を出力させます。

これはビルドシステムに依存します。たとえば、RubyおよびRSpecの場合、次の内容で.rspecファイルをプロジェクトに作成します。

--color --tty

あなたの場合、すでにANSIカラーエスケープシーケンスで出力を生成するビルドシステムがあります。

2。インストール ANSIescape(SublimeANSI)パッケージ

パッケージコントロールからインストールすることをお勧めします。インストールと構成の手順については、パッケージのリポジトリを参照してください。

3。 Sublime Textで新しいビルドシステム定義を作成し、ANSI色を認識するように構成します

たとえば、これはColorized RSpec.sublime-buildビルドシステムの内容です。

{
    "cmd": ["rspec", "-I ${file_path}", "$file"],
    "file_regex": "# ([A-Za-z:0-9_./ ]+rb):([0-9]+)",
    "working_dir": "${project_path:${folder:${file_path}}}",
    "selector": "source.Ruby.rspec",
    // Recognize ANSI colors in the output
    "target": "ansi_color_build",
    "syntax": "Packages/ANSIescape/ANSI.tmLanguage"
}

最後の2つの構成オプションは SublimeANSIのreadme から取得されます。これをMakeのビルドシステムに適用できます。 Sublime Text 3のパッケージにある Make.sublime-build ファイルの現在のバージョンをベースにすることができます。

4。新しく作成されたビルドシステムを使用してファイル/プロジェクトをビルドします。

「Build with ...」メニューを使用して、新しいビルドシステムを選択します。 OS Xでは、これはCmd + Shift + Bです。 Cmd + Bを使用した後続のビルドでは、この最後に選択されたビルドシステムが使用されます。

これはどのように見えるかです:

enter image description here

16
Dimitar

現在、私が見つけたST3コンソールに色を解析させる方法はありません。これは作者と話し合う必要があります。コンソールに常に単色出力があることに気づきました。 ST3は現在、それに適用したテーマで提供されている色のみを使用しています。

エスケープシーケンスを取り除く唯一の方法は、出力がSublimeに到達する前にそれらをフィルターで取り除くことです。

5
Sly