6
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

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

はじめに

たびたび、ターミナルに何かしらを出力する際、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 一行の長さが画面幅を超える場合でも改行しない

参考資料

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
6
Help us understand the problem. What are the problem?