web-dev-qa-db-ja.com

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

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

21

コマンドdircolorsはGNU coreutilsに固有であるため、組み込みでないLinuxやCygwinでは見つかりますが、OSXなどの他のUNIXシステムでは見つかりません。生成された設定.zshrcのOSXには移植できません。

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

actual ls command を使用した色の場合、OSXでCLICOLOR環境変数を設定し、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)を設定したい場合は、dircolors -b ~/.dircolors.zshrcの出力をハードコードし、これらの設定を使用することをお勧めします。 zshとGNU ls。

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

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ポートをMacポートからインストールすることを提案する人もいますが、私の意見ではこれはやり過ぎです。あなたはポートを見つけることができます ここ

13
Raphael Ahrens

Macのことはもうやらないので、何もテストする必要はありませんが、これをFreeBSDで機能させるために、ポートからこれを機能させる方法を見つけました。 OSXにはbrewmacportsのようなものがあることを思い出します-dircolorsを本当に機能させたい場合は、GNU coreutils from thisをインストールしてみてください。これはdircolorsのエイリアスをgdircolorsに設定する必要もあったため、これはFreeBSDの移植版がfunをインストールしたときのコマンドです。

以下は、brewを介してcoreutilsを入手する誰かへのリンクです。

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

7
Dmitri DB