bash - zsh 更改提示输入颜色

标签 bash terminal zsh zshrc

我想更改 zsh 中输入文本的颜色(我为每个命令键入的文本)。示例:在 user@host> ls ~/ 中,我希望 ls ~/ 为黄色以从标准输出中脱颖而出。

我知道我可以在 bash 中使用

完成此操作
export PS1=" $BIGreen \u@\h \w \$ $IYellow" 

在提示结束时,颜色设置为黄色,我输入的输入文本是黄色(定义了适当的颜色变量)。然后

trap 'echo -ne "\e[0m"' DEBUG

当显示我的命令的输出时,它将颜色重置为正常。

如何在 zsh 中完成此操作?目前,我有

PROMPT=$'{$fg[green]%}%n@%{$fg[green]%}%m %# %{$fg[yellow]%}'

在 .zshrc 中(最后将颜色设置为黄色)但它不起作用。 (我也不知道如何在命令后将颜色设置回白色)。

最佳答案

试试这个:

PROMPT="%F{green}%n@%m %# %F{yellow}"
preexec () { echo -ne "\e[0m" }

我尝试使用 trap,但看起来 DEBUG 直到命令运行之后/下一个提示之前才会发生,所以命令最终以黄色执行. preexec() 函数在命令执行之前被调用,因此您可以在那里恢复默认颜色。

关于bash - zsh 更改提示输入颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268836/

相关文章:

bash - 使用 popd、pushd 时获取我的目录堆栈中不同目录路径的引用

java.lang.ClassNotFoundException : org. jsoup.nodes.Document 使用 Maven

c - 如何在 Shell FFmpeg 中转义单引号?

visual-studio-code - 在 Visual Studio Code 上集成 ZSH 时出现字体问题

Bash 与 Zsh,git grep 在 bash for 循环中工作,但在 zsh for 循环中不起作用?

bash - 为什么 `for i in {1..10}` 与 `for ((i=1; i<=10; i++))` 不同?

linux - bash:运行一个命令 n 分钟,然后 SIGHUP 它

linux - Telegram -cli : Script not sending message

ios - 无法在我的 Mac OS X 终端中导航目录。我得到 “No such file or directory”

python - 初学者安装 nosetests 包