LoginSignup
17
7

More than 3 years have passed since last update.

ターミナルに突如現る! ESC[ を非表示にする方法

Posted at

はじめに

たびたび、ターミナルに何かしらを出力する際、ESC[ という文字列が出力結果に散りばめられ、非常に見にくい表示になっていました。
私の場合は、git diff の出力結果にこのような問題が見られ、解決策がわからないままでしたが、ある英語サイトにソリューションが掲載されていましたので、日本語版として同じ問題に遭遇した人の一助になればと思い、本記事を投稿します。

ソリューション

最初に解決策を示します (❯コマンドプロンプトですので、入力しないで下さい)。

❯ export LESS="-iRMXS"

上記のコマンドを実行するだけです。
こちらの英語サイトによると、less コマンドに問題があったとか。環境変数 $LESS が誤って設定されていることに原因があったそうです。

Rオプションをつけることで、ANSI カラーエスケープシーケンスを解するようにできます。

ですので、実は、次のコマンドでも問題は解決できます。

❯ export LESS="-R"

ただ、Rオプションに加えて、iMXSのオプションをつけることで、幾分幸せになることができますよ(理由は補足に示します)。

変化

私の場合、以下のように見やすくなりました。
苦しみながら、解読していた時が懐かしいです。笑

・before

❯ git diff
ESC[1mdiff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erbESC[m
ESC[1mindex 3295719..2feb624 100644ESC[m
ESC[1m--- a/app/views/users/show.html.erbESC[m
ESC[1m+++ b/app/views/users/show.html.erbESC[m
ESC[36m@@ -118,7 +118,6 @@ESC[m
   </div>ESC[m
 </div>ESC[m
 ESC[m
ESC[31m-ESC[m
 <script>ESC[m
 $(".tab").on("click", function() {ESC[m
   console.log(this);ESC[m

・after

❯ git diff
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index 3295719..2feb624 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -118,7 +118,6 @@
   </div>
 </div>

-
 <script>
 $(".tab").on("click", function() {
   console.log(this);

補足

私が設定しているlessコマンドの便利なオプションを表にまとめました。

オプション 意味
-i 検索時に全部小文字で入力した時だけ、大文字小文字を無視する
-M 詳しいプロンプトを表示する(現在の表示位置を%で表示する等)
-X less 終了時に画面をクリアしない 
-S 一行の長さが画面幅を超える場合でも改行しない

参考資料

17
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
7