ZSH で、cd
ディレクトリに移動してタブを使用してディレクトリの一覧を取得しようとすると、一部のディレクトリに非常に明るい緑色のハイライトが表示されます。背景のハイライトが のディレクトリと同じであることに気付きましたls
。修正されることを期待して変更しましたLS_COLOR
が、自動補完のハイライトは同じままです。zstyle 補完キー/構成も確認しましたが、ディレクトリのものは見つかりませんでした。誰かこの修正を手伝ってくれませんか?
ありがとう
.zshrc
編集: 私のファイルへのリンクは次のとおりです:https://dpaste.org/V8oE
編集2: ターミナル (Konsole) のテーマを変更することでこの問題を解決できました。これは ZSH の問題ではないと思います。
答え1
zsh のカラー補完は zstyle で設定されますlist-colors
(info zsh list-colors
詳細については を参照してください)。
~/.zshrc
呼び出されるカスタマイズ ファイルまたは他のカスタマイズ ファイルには、次のような内容が含まれる場合があります。
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
これは変数の内容に基づいて行われます$LS_COLORS
(そのため、zsh の補完では GNUls --color
出力と同じ色が得られます)。
$LS_COLORS
は GNU によって使用される変数でありls
、通常は次のような呼び出しによって設定されます。
eval "$(dircolors --sh ~/.dircolors)"
(おそらくあなたの の以前のバージョン~/.zshrc
、またはあなたの の以前のバージョン~/.zprofile
)。
で
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
しかし、は$LC_COLORS
拡大され、分割され、:
当時の~/.zshrc
解釈。
を変更した場合$LS_COLORS
、そのzstyle
コマンドは自動的に再実行されません。また、~/.zshrc
を変更した後に を再度source すると、に保存されている構成に基づいて再生成されるコマンドも再実行され、変更内容が上書きされる$LS_COLORS
可能性があります。dircolors
$LS_COLORS
~/.dircolors
したがって、ここで必要なことは次のとおりです。
list-colors
スタートアップファイルでzstyleが定義されている場所を確認します- に基づいている場合は
$LS_COLORS
、それがどのように定義されているかを調べて修正します。そうでない場合は、色の好みに合わせて へ$LS_COLORS
の呼び出しを調整します。zstyle