gpt4 book ai didi

shell - zsh 在执行搜索和补全时插入额外的空格

转载 作者:行者123 更新时间:2023-12-02 03:22:34 24 4
gpt4 key购买 nike

我编写了一个小程序,它会发出带有一些 Git 信息的命令行提示符。我使用 ANSI 转义序列给它着色,它看起来像这样:

prompt example

但是,每当我执行制表符补全或搜索时,zsh 都会在提示后插入几个空格:

spacing bug

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

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

~/s/promptd [\e[36mmaster \e[33m±\e[31m?\e[39m]

我的 .zshrc 的相关部分是:

setopt PROMPT_SUBST
setopt PROMPT_PERCENT
PROMPT='%B$(promptd) %%%b '

最佳答案

经过一些额外的研究后,ZSH Prompt Expansion docs指示转义文字需要包含在 %{...%} 中。

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

关于shell - zsh 在执行搜索和补全时插入额外的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28799198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com