5
我想更改zsh中输入文本的颜色(我为每个命令键入的文本)。例如:在[email protected]> ls ~/
我希望ls ~/
为黄色以从标准输出中脱颖而出。zsh更改提示输入颜色
我知道可以使用
export PS1=" $BIGreen \[email protected]\h \w \$ $IYellow"
在提示结束时的bash实现这一点,颜色设置为黄色,输入文本I型是黄色(与所定义的适当的颜色变量)。然后
trap 'echo -ne "\e[0m"' DEBUG
当我的命令的输出显示时,它将颜色重置为正常。
我该如何做到这一点zsh?目前,我有
PROMPT=$'{$fg[green]%}%[email protected]%{$fg[green]%}%m %# %{$fg[yellow]%}'
in .zshrc(在最后设置颜色为黄色),但它不起作用。 (我也不知道如何在命令后将颜色设置为白色)。
这正是我想要的!谢谢。你介意解释这是如何工作的吗?另外需要注意的是,它在自动完成期间会自动完成颜色回复(例如'ls somepath [tab]'),至少对于我的设置(我认为zsh在自动完成期间插入了无色的斜线),但这是一个非常小的投诉。 – 2012-11-30 06:51:13
原始字符串中有一个拼写错误('#F'而不是'%F'),但这也不是问题。我只是注意到,自动完成后,我遇到了和自己颜色相同的问题。 'prexec()'在从shell执行的每个命令之前被调用,这是如何工作来重置颜色的。原来你应该用'%f'标记关闭所有'%F'颜色变化以恢复原始颜色。如果我找出更好的解决方案,我会更新答案。 – 2012-11-30 17:24:11