端末がディレクトリリストの色を表示しない


9

bashセッションで色が表示されない理由がわかりません。ターミナルとiTermを試しました。

私が試してみました:

  1. ls -G
  2. 設定export CLICOLOR=1export LSCOLORS=GxFxCxDxBxegedabagaced
  3. ソラリゼーションなどのさまざまなテーマを使用する

私のソフトウェアのバージョンは次のとおりです。

  1. bash:GNU bash、バージョン3.2.51(1)-release(x86_64-apple-darwin13)
  2. osx:10.9.2

Homebrewをインストールしました

他にどんな情報が役立つかわかりません。私はシェルで多くの時間を費やします、この問題は非常に迷惑になります:)

編集:ターミナル設定で、「xterm-256colorとしてターミナルを宣言」と「ANSIカラーを表示」と「太字のテキストに明るい色を使用」があります


実行してみてくださいprintf '\e[32mtest\n'、それが機能する場合、それは問題lsです。
0942v8653 14年

私もこの問題を抱えています。試したことを拡張するために、coreutilsのglsコマンドで問題が解決しません。上記のコメントは、プロンプトの色を正常に変更します。私の問題はSolarizedDarkテーマにあるようです。他のテーマのTerminal.appの設定で色を変更すると動作します。
agweber 14

回答:


3

Homebrew経由でGNU Core Utilitiesをインストールすることをお勧めします。これlsにより、OS Xに同梱されているFreeBSDバージョンではなく、Linuxバージョンが提供されます。

brew update
brew install coreutils

そうすると、次のように色を表示できるはずです。

gls --color

さらに、警告を読んでPATHを構成glsし、通常の名前のようなコマンドを使用できるようにしますls

$ brew info coreutils
coreutils: stable 8.23 (bottled)
https://www.gnu.org/software/coreutils
Conflicts with: ganglia, idutils
/usr/local/Cellar/coreutils/8.23 (214 files, 10M)
  Poured from bottle
/usr/local/Cellar/coreutils/8.23_1 (214 files, 10M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/coreutils.rb
==> Dependencies
Build: xz 
==> Caveats
All commands have been installed with the prefix 'g'.

If you really need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:

    PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Additionally, you can access their man pages with normal names if you add
the "gnuman" directory to your MANPATH from your bashrc as well:

    MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

OS XのデフォルトのBSD lsコマンドのようにCLICOLOR環境変数を単純に定義するだけでは、gls(GNU ls)は色を有効にしないことに注意してください。また、BSD lsで色を有効にする-Gスイッチは、GNU lsでは機能せず、BSD lsでは--colorも機能しません。すべてのlsコマンドをカラー化する場合は、lsのエイリアスを定義して--colorスイッチを追加する必要があります。「man ls」(BSDフレーバー)からの参照:「-G色付き出力を有効にします。このオプションは、環境でCLICOLORを定義するのと同等です。」
マークエディントン

coreutilsのインストール後にgls --colorを使用すると、LSCOLORS変数の色ではなく、デフォルトの色になりました。通常の名前でデフォルトのgnuツールへのパスを変更したのでwhich ls、/ bin / lsに戻るためにrm を実行しました。驚いたことに、これは現在のシェルを怒らせ、もはやlsを見つけることができませんでしたが、新しいシェルは問題なく機能しました。bashは焼き直しを持っていないので、それが/ usr / localには/ opt / coreutilsの/ libexecに/ gnubin / LSにハングアップしてしまった理由を私は理解していない
アーロン・マクミラン

1

Temrinalの[ターミナル]> [設定]で、使用しているセッションタイプのプロファイルを選択し、[詳細設定]タブで使用しているターミナル宣言を確認します。ほとんどの場合、選択したものはANSIカラーリングをサポートしていません。xterm-256colorはあなたが期待しているものをサポートするはずです。


確認したところ、端末はすでにxterm-256colorに設定されています(これと他の情報を反映するために質問を更新しました)
Shahbaz 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.