Mat*_*ine 5 shell zsh prompt command-prompt ansi-escape
我编写了一个小程序,它会发出带有一些 Git 信息的命令行提示符。我使用 ANSI 转义序列给它着色,它看起来像这样:
\n\n但是,每当我执行制表符补全或搜索时,zsh 都会在提示后插入几个空格:
\n\n它似乎为提示符发出的每个转义代码字符插入一个空格,因为删除颜色代码可以消除这种行为。zsh 为什么要这样做,我该如何阻止它?
\n\n本例中我的提示程序发出的实际字符序列是(假设\\e
代表字符 033)
~/s/promptd [\\e[36mmaster \\e[33m\xc2\xb1\\e[31m?\\e[39m]\n
Run Code Online (Sandbox Code Playgroud)\n\n我的相关部分.zshrc
是:
setopt PROMPT_SUBST\nsetopt PROMPT_PERCENT\nPROMPT=\'%B$(promptd) %%%b \'\n
Run Code Online (Sandbox Code Playgroud)\n
在做了一些额外的研究之后,ZSH Prompt Expansion 文档表明转义文字需要包含在%{...%}
.
这很麻烦,因为现在如果我希望提示程序在其他 shell 中工作,我必须有条件地输出这些内容,但它似乎纠正了上面显示的行为。
归档时间: |
|
查看次数: |
2168 次 |
最近记录: |