zsh:Mac端末で見えないすべてのファイル名の色を変更するには?

zsh:Mac端末で見えないすべてのファイル名の色を変更するには?

私はMacシリコンを使用していますが、ベンチュラアップルシステム。端末アプリケーションでは、すべてのファイル名が同じ色を持ちます。デフォルトのシェルは次のとおりです。扱いにくいVenturaでは、これが私が使いたいものです。現在私.zshrc構成ファイルには次の内容が含まれています。したがって、ディレクトリはすべて特定の色で端末に表示されます。これを変更したくありません。

 PROMPT='%U%B%F{red}%n%u: ~%f%b'
 alias ls="ls -G"
 alias ll="ls -lG"

-GBSDのオプション(lsmacOSでも使用)はカラー出力をオンにします。

このようなオプションを使用するときに表示される.隠しファイル(名前で始まるファイル)を表示するために使用される色を変更するためにそこに何かを追加したいと思います。すべての隠しファイル(ディレクトリを除く)が端末で明るい赤(マゼンタなど)で表示されるようにしたいです。私はターミナルコマンドについて知らないので(私はいくつかの基本的なUnixコマンドだけを知っています)、シンプルでカラフルなトリックは必要ありません。ls-A

だから私は何をすべきですか?上記の.zshrcファイルにどのコマンドを追加する必要がありますか?

答え1

コマンドは、ls印刷されたコンテンツの外観について完全に責任があります。ls実行時に終了するzshまで待ちますls。 (コンテンツ印刷zshにはさまざまな色のオプションがありますzsh。)

MacOSでlsさまざまな色を設定する方法は次のとおりです。https://www.cyberciti.biz/faq/apple-mac-osx-terminal-color-ls-output-option/「LSCOLORS値について」(man lsカラー処理方法も表示)を参照してください。

残念ながら、ファイル/ディレクトリ名を処理することはできませんが、ファイル形式(ディレクトリ、ソケット、シンボリックリンクなど)のみを提供したパレットに従って色を変更します。

1つの解決策は別のコマンドを使用することですが、GNUのコマンドはモード(カラー処理関連)をls処理しないようです。.*のみ*.extension。同様のことは、LS_COLORS='.*=01;33' ls -a認識できない接頭辞を表します。 (によるとhttp://www.bigsoft.co.uk/blog/2008/04/11/configuring-ls_colors)

答え2

GNUの色付けは、ファイルメタデータまたは固定サフィックス(通常はユーティリティの助けを借りて設定)lsに基づいてのみ実行できますが、$LS_COLORSdircolorszsh完了カラー設定可能すべてのパターンに基づいています。

通過しますls$LS_COLORS=pattern=attributes

# set LS_COLORS for GNU ls
eval "$(dircolors)"

# use same colouring for completions, but also specify magenta for hidden files
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} '=.*=35'

または GNU がない場合は、次のようにlsdircolorsます。

zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} '=.*=35'

(残りはGNUに似た基本色を使用しますls)。

これはより現代的なものを使用していますリストカラーzstyleただし、構文は)と同じです$ZLS_COLORS

その後、または手動でカラーコンプリートを有効にしたと仮定すると、compinstall隠しファイルがフクシアで表示されます。

globdotsakadotglobオプションを有効にするか(すべてのglob拡張に影響を与える)、以下を追加する必要があります。

zstyle ':completion:*' file-patterns '*(D)'

デフォルトでは、隠しファイルは完成リストに含まれています。

少なくとも~/.zshrc以下をテストしてください。

zstyle ':completion:*' menu select=2
zstyle ':completion:*:default' list-colors '=.*=35'
zstyle ':completion:*' file-patterns '*(D)'
autoload -Uz compinit
compinit -i

compinstallただし、仕上げシステムを好みに合わせて調整し、2つのスタイルを別々に追加するのがlist-colors最善file-patternsです。

とにかくこれはzsh完成リストにのみ適用され、ls出力には影響しません。

関連情報