我的终端有一个长绕行问题。谁能帮我修改提示环境变量来解决这个问题?这是我的提示环境变量:
function parse_git_branch() {
git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}
COLOR_DEF=$'\e[0m'
COLOR_USR=$'\e[38;5;243m'
COLOR_DIR=$'\e[38;5;197m'
COLOR_GIT=$'\e[38;5;39m'
setopt PROMPT_SUBST
export PROMPT='${COLOR_USR}%n${COLOR_DIR}@%m ${COLOR_GIT} %1d$(parse_git_branch)${COLOR_DEF}$'
答案1
您需要告诉 zsh 这 11 个字符/字节实际上$'\e[38;5;243m'
不占用空间,宽度为零,因此行编辑器可以判断何时到达屏幕的右端。
在 中zsh
,与在 中一样tcsh
,这是通过将它们括在 中%{...%}
,对于所有其他转义序列相同:
PROMPT=$'%{\e[38;5;243m%}'
您还可以用来%5{weird stuff%}
告诉 zsh 里面的内容的显示宽度为 5 列。info zsh 'prompt expansion'
详情请参阅。
不过,在这里,您宁愿使用%F{243}
告诉zsh
使用前景色 243,而不是自己对这些转义序列进行硬编码。