我的 ZSH 配置中有一个调整后的提示符。主要特点是,此提示符为红色,以便我可以轻松将其与程序的输出区分开来。我的提示符定义如下:
PROMPT=$'\e[0;31m%n@%m:%~> \e[0m'
这种方法通常都很好用,但有时我的光标会在制表符补全时切换到另一个位置,一些字符会留在屏幕上,并破坏命令行。这有点烦人,但如果有人知道解决办法,我将不胜感激。
答案1
您需要将非打印序列包装在%{ ... %}
:
PROMPT=$'%{\e[0;31m%}%n@%m:%~> %{\e[0m%}'
你应该能够做到:
PROMPT=$'%F{red}%n@%m:%~> %f'
它更简单,更容易阅读,并且可以与使用不同转义序列的终端类型一起使用。