アップデート:

アップデート:

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'

Mac OS X には同梱されていませんかdircolors? どのようにインストールすればよいですか?

アップデート:

シェル上で dircolors を直接実行すると、次のようになります。

bash: dircolors; command not found

答え1

このコマンドはdircolorsGNU 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

デフォルト以外の色 (ファイル引数を使用) を設定したい場合は、の出力をハードコードし、これらの設定を zsh と GNU ls の両方で使用することdircolorsをお勧めします。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

答え2

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

Mac PortsからGNU-Coreutilsをインストールすることを提案する人もいますが、私の意見ではこれはやりすぎです。ポートはここ

答え3

私はもう Mac 関連のことはやっていないので、テストするものは何もありませんが、これを FreeBSD で動作させる方法を探る中で、ports からこれを動作させる方法を見つけました。OSX には や のようなものがあることを思い出しました。本当に動作させたいのでbrewあれmacportsば、ここから GNU coreutils をインストールしてみてください。また、FreeBSD ports が fun をインストールしたコマンドなので、のdircolorsエイリアスを設定する必要がありました。これを試してみる人には幸運を祈ります!dircolorsgdircolors

以下は、brew 経由で coreutils をダウンロードした人のリンクです:

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

答え4

dircolorsHomebrew coreutils パッケージからインストールできます:

 brew install coreutils

ただし、GNU coreutils はPATHデフォルトでは に含まれていません。 を編集して~/.zshrc~/.bashrc以下を追加します。

  export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"

これで、新しいシェル セッションを開始するとdircolors動作するはずです。

関連情報