teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

情報追加のため

2018/08/08 15:52

投稿

archiver
archiver

スコア1575

answer CHANGED
@@ -5,4 +5,22 @@
5
5
  ```
6
6
  dircolors ~/.dircolors/.dircolors
7
7
  ```
8
- とします。
8
+ とします。
9
+
10
+ ---
11
+ 質問者さんが提示した.dircolorsファイルをこちらの環境で色々と試してみたところ、``TERM``の宣言部分に問題があることがわかりました。
12
+ まずは以下のページを見てみてください。dircolorsについての解説がまとめられています。
13
+ [dircolors - lsコマンドの色表示を設定する](https://linuxcommand.net/dircolors/)
14
+
15
+ ``TERM``宣言部は**指定した色設定を適用させる仮想端末の種類(xtermなど)を指定**します。これは複数指定することができ、その場合は何行かに渡って宣言します。
16
+ さて、ここで重要なのが、
17
+ > TERMは、環境変数TERMが指定されたものの場合に色設定が取得できるようになります。
18
+
19
+ の但し書き。これ、言い換えると、TERMで宣言した仮想端末の種類と``環境変数TERM``で指定された仮想端末の種類が一致すれば設定を反映するということになります。つまり、一致するものがなければ、設定が反映されないんですね。ものは試しに、環境変数TERMの中身を確認してみてください。そして、それが作成した.dircolorsのTERMのリストの中にあるかを確認してみてください。おそらく、入っていないのではないかと思います。
20
+ で、解決方法ですが、
21
+ 0. 環境変数TERMに指定されている仮想端末の種類を.dircolorsに追加する
22
+ 0. TERM宣言部をすべて削除する
23
+
24
+ になります。
25
+ 1.は先述の通りの仕組みで動いているためですので、該当する仮想端末種類を.dircolorsに追記することで解決になります。
26
+ 2.ですが、TERM宣言部が**「設定を適用させたい仮想端末の種類を指定する」**というものですので、端末種類を特定する必要がなければ、TERM宣言部を書かなければ、そのまま適用されます。