Я хочу изменить цвет текста ввода в zsh (текст, который я набираю для каждой команды). Пример: в [email protected]> ls ~/
Я бы хотел, чтобы ls ~/
был желтым, чтобы выделяться из стандартного выхода.zsh change prompt input цвет
Я знаю, что может сделать это в Баше с помощью
export PS1=" $BIGreen \[email protected]\h \w \$ $IYellow"
В конце подсказки, цвет устанавливается в желтый цвет, тип ввод текста я желтый (с соответствующим цветовым переменными, определенным). А затем
trap 'echo -ne "\e[0m"' DEBUG
Сбрасывает цвет в нормальное состояние при отображении выходов моей команды.
Как это сделать в zsh? В настоящее время у меня есть
PROMPT=$'{$fg[green]%}%[email protected]%{$fg[green]%}%m %# %{$fg[yellow]%}'
в .zshrc (установка цвет на желтый в конце), но он не работает. (Я также не знаю, как вернуть цвет в белый цвет после команды).
Это именно то, что я хотел! Благодарю. Не могли бы вы объяснить, как это работает? Кроме того, один из предостережений заключается в том, что цвет возвращается во время автозаполнения (например, 'ls somepath [tab]'), по крайней мере для моих настроек (я думаю, zsh вставляет неокрашенную косую черту во время автозаполнения), но это очень незначительная жалоба. –
В исходной строке была опечатка ('# F' вместо'% F'), но это тоже не проблема. Я только заметил, что у меня такая же проблема, как и с изменением цвета после автозаполнения. 'prexec()' вызывается перед каждой командой, выполняемой из оболочки, что и работает, чтобы сбросить цвет. Оказывается, вы должны закрыть все цветовые изменения '% F' с помощью тега'% f', чтобы восстановить исходный цвет. Если я придумаю лучшее решение, я обновлю ответ. –