我有一个小脚本来着色当前目录中git仓库的状态:
export PS1="$LG\n[\!] -${LG}bash${LG}- $LG\u$DG@$RD\h $GN\w \$(git_branch)\n$LG └─► $RES"
当我在bash的提示中使用它时效果很好:
set prompt = "${LG}\n\[%!\] -${RD}csh${LG}- ${LG}%n${DG}@${RD}%m ${GN}%~ `git_branch`\n${LG} └─► ${RES}"
但是当我在csh的提示中使用它时:
^[[0;37m[^[[0;34mmaster^[[0;31m✘ ^[[0;37m]
它打印echo `git_branch`
而不是彩色分支名称和状态。虽然
{{1}}
按预期工作。如何让csh / tcsh正确解释转义序列?
答案 0 :(得分:1)
根据https://www.cs.umd.edu/~srhuang/teaching/code_snippets/prompt_color.tcsh.html,您应该将转义序列放在EDITOR
的{{1}}内。
%{ }
如果您希望更新GIT分支,则需要将提示设置放在csh
别名中,该别名在每个命令之前进行评估:
set red="%{\033[1;31m%}"
set green="%{\033[0;32m%}"
set yellow="%{\033[1;33m%}"
set blue="%{\033[1;34m%}"
set magenta="%{\033[1;35m%}"
set cyan="%{\033[1;36m%}"
set white="%{\033[0;37m%}"
set end="%{\033[0m%}" # This is needed at the end... :(
set prompt = "${white}\n\[%!\] -${red}csh${white}- ${white}%n${DG}@${red}%m ${green}%~ `git_branch`\n${white} └─► ${RES}${end}"