web-dev-qa-db-ja.com

sbt / playでカラー端末出力を無効にするにはどうすればよいですか?

Sbt/playから記録されたカラーエスケープコードを無効にしたいのですが。これは可能ですか?もしそうなら、設定を変更せずにそれを行う方法はありますか?つまり、コマンドラインスイッチまたはシステムプロパティを介して。

56
Mark Hibberd

システムプロパティを設定するだけですsbt.log.noformatからtrue。あなたがしたい場合例えばVim内でSBTを使用すると、次のようなスクリプトを作成できます。

#!/bin/bash
Java -Dsbt.log.noformat=true $Java_OPTS -jar "${HOME}/bin/sbt-launch.jar" "$@"
54
Moritz

バージョン0.13.8(および場合によってはそれ以前)以降、-no-colorsオプションを使用してsbtを実行できるようになりました。例えば.

sbt -no-colors test
52
Steven Shaw

これは、プラットフォームが実際のjline.terminalプロパティと一致していないようです。ここで推測しているだけですが、ダニエルがWindowsコマンドラインで提案したようにパラメーターを渡すと、カラーエスケープコードも表示されます。

したがって、プロパティがプラットフォーム(Windowsの場合はWindowsTerminal、Unixの場合はUnixTerminal)と一致していることを確認する必要があります。

これで問題が解決しない場合は、サポートされていないプラットフォームを使用している可能性があります。その場合は、 website の使用をお勧めします。

-Djline.terminal=jline.UnsupportedTerminal
2
weberste

そうですね、Cygwinをインストールして次のパラメーターを渡すことで、Windowsで色をgetできます。

-Djline.terminal=jline.UnixTerminal

したがって、jlineパラメータを調べて、色分けを無効にするものを確認します。

0

以下を追加することで、CygwinのSBTからカラー出力を取得できました。

-Djline.terminal=jline.UnixTerminal

さらに、Cygwin.batに次の行を追加する必要があることもわかりました。

set CYGWIN=tty ntsec

その後、SBTは非常に素晴らしい色の出力を提供します。さらに、Cygwinを介してフックできるため、Console2を調べることをお勧めしますが、私の意見でははるかに優れたインターフェイスを提供します。

http://sourceforge.net/projects/console/

0
darkfrog