首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在执行搜索和完成时,zsh插入额外的空格。

问在执行搜索和完成时,zsh插入额外的空格。
EN

Stack Overflow用户
提问于 2015-03-01 21:16:11
回答 1查看 1.8K关注 0票数 5

我已经写了一个小程序,它会发出命令行提示符和一些Git信息。我使用ANSI转义序列对其着色,它看起来如下所示:

​

​

但是,每当我执行选项卡完成或搜索时,zsh在提示符后插入几个空格:

​

​

它似乎在为提示符发出的每个转义代码字符插入一个空格,因为删除颜色代码可以消除这种行为。为什么zsh要这样做,我如何才能阻止这种情况呢?

本例的提示程序发出的实际字符序列是(假设\e表示字符033)。

代码语言:javascript
复制
~/s/promptd [\e[36mmaster \e[33m±\e[31m?\e[39m]

我的.zshrc的相关部分是:

代码语言:javascript
复制
setopt PROMPT_SUBST
setopt PROMPT_PERCENT
PROMPT='%B$(promptd) %%%b '
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-01 22:11:06

在做了一些额外的研究之后,ZSH快速扩展文档指出转义文字需要包含在%{...%}中。

这是麻烦的,因为现在我必须有条件地输出那些如果我希望提示程序在其他shell中工作,但它似乎纠正了上面所示的行为。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28799198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档