Mac OS X:dircolorsが見つかりませんか?


19

Macbook Airに切り替えました。homebrewを使用してzshをインストールしましたが、(元々)で使用していたコードの一部を使用すると、.zshrcというエラーが表示され.dircolors was not foundます。

問題のコードは次のとおりです。

zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true

zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'

されるdircolorsのMac OS Xに付属していませんか?どうすればインストールできますか?

更新:

シェルで直接dircolorsを実行すると、次の結果が得られます。

bash: dircolors; command not found


エラーの原因は本当にこのコードであると確信していますか?のみがdircolors -b疑わしいようですが、私のコンピューターでは~/.dircolorsファイルなしで正常に動作します。
マーティン・フォン・ウィッティヒ

dircolorsシェルで手動で実行して、バイナリが存在し、にあるかどうかを確認してください$PATH
マーティン・フォン・ウィッティヒ

エラーは本当に.dircolors was not foundについてではなくdircolorsdircolors自分でインストールしない限り、OSXにはコマンドはありません。Linuxに固有です(より正確にはGNU coreutilsに固有です)。
ジル「SO-悪であるのをやめる」

@Gillesに感謝します。シェルに入力すると、dircolors次のようになりますbash: dircolors: command not found。OPに投稿したコードは、LinuxマシンのZshによって自動的に生成されました。.zshrcMac OS Xに直接クローンできると思った。私のOPのコードが何をしているのか知っていますか、それを修正してMac OS Xに同等の機能をもたらす方法に関する提案がありますか?
アメリオバスケスレイナ

回答:


15

このコマンドdircolorsはGNU coreutilsに固有であるため、非組み込みLinuxおよびCygwinで使用できますが、OSXなどの他のUNIXシステムでは使用できません。生成された設定は.zshrcOSXに移植できません。

デフォルトの色を使用しているため、空の文字列をに渡し、 list-colorsファイル補完で色を取得できます。

実際のlsコマンドでの色については、CLICOLOROSXで環境変数を設定しLSCOLORS、色を変更する場合も設定します(形式についてはマニュアルを参照)。

if whence dircolors >/dev/null; then
  eval "$(dircolors -b)"
  zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
  alias ls='ls --color'
else
  export CLICOLOR=1
  zstyle ':completion:*:default' list-colors ''
fi

デフォルト以外の色(dircolorsファイル引数付き)を設定したい場合は、の出力をハードコーディングし、これらの設定をzshとGNU lsの両方に使用することをお勧めdircolors -b ~/.dircolorsします.zshrc

LS_COLORS=…
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
if whence dircolors >/dev/null; then
  export LS_COLORS
  alias ls='ls --color'
else
  export CLICOLOR=1
  LSCOLORS=…
fi

3
GNUはdircolorsとして提供されるgdircolorsことでbrewcoreutilsパッケージ。
m8mble

13

FreeBSDにはコマンドがなくdircolor、OS XにはFreeBSDのベースがあるため、使用できません。

最も簡単なことは、使用することです

export CLICOLOR=YES

あなたの .zshrc.bashrcし、削除eval "$(dircolors -b)"。色を変更するには、環境変数を使用できますLSCOLORS。例えば:

export LSCOLORS="Gxfxcxdxbxegedabagacad"

詳細については、manページを参照してください。

man ls

の代替 export CLICOLOR=YESは、エイリアスを使用することですls

alias ls=ls -G

一部の人は、GNU-CoreutilsをMac Portsからインストールすることを提案しましたが、私の意見ではこれはやり過ぎです。ここでポートを見つけることができます


7

私はもうMac全体をやっていないので、テストするものは何もありませんが、これをFreeBSDで動作させるための探求で、ポートから動作させる方法を見つけました。私はOSXのようなものを持ってリコールbrewし、macportsあなたが本当にしたい場合は、このからのGNU coreutilsのをインストールしてください- dircolors仕事に。また、エイリアスを設定する必要がありましたdircolorsgdircolors、これはFreeBSDのportsのように楽しみをインストールするコマンドであるとして。試してみてください!

brewを使用してcoreutilsをダウンさせる人へのリンクは次のとおりです。

http://www.topbug.ne​​t/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.