首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ZSH完成制表符时的残余字符

问用ZSH完成制表符时的残余字符
EN

Stack Overflow用户
提问于 2013-10-10 20:11:27
回答 6查看 13.5K关注 0票数 42

我在Arch linux中使用了oh,并加载了robbyrussell主题。当我尝试选择“完成”选项卡时,最后会在提示符后面添加剩余字符。如果我删除自动完成的字符,则残存字符不删除.

例如,如果我输入:

代码语言:javascript
复制
~ /etc

然后选项卡,它将转到

代码语言:javascript
复制
~ /e/etc/

下面列出了一些选项。即使我删除了/etc/,/e仍然存在,而且我被困住了:

代码语言:javascript
复制
~ /e

我不能删除/e。我必须执行命令才能去除残存的字符。

知道这是怎么回事吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-12 00:06:01

原来是地方问题。运行locale-gen没有工作,直到我删除了某个配置文件并重新运行它。

不过,你的建议对提速是有好处的。谢谢。

票数 -2
EN

Stack Overflow用户

发布于 2014-01-07 10:20:32

似乎我对地区配置和非UTF8配置有问题。

就我而言,解决办法是:

代码语言:javascript
复制
export LC_ALL="en_US.UTF-8"

并将该行永久添加到.zshrc中:

代码语言:javascript
复制
echo "export LC_ALL=en_US.UTF-8" >> .zshrc

Ubuntu https://help.ubuntu.com/community/Locale中的更多信息

票数 82
EN

Stack Overflow用户

发布于 2013-11-01 16:51:24

正如simont所建议的,您使用的提示符很可能是使用不可打印字符(如颜色转义码),但并不表示这些字符是不可打印的。因此,当提示符被重画时,终端认为提示符比实际要宽。

您可以使用%{和%}分隔符指示zsh提示符中的字符序列具有零宽度。例如,我的提示符是:

代码语言:javascript
复制
%{%(?.%F{green}.%F{red})%}➜%{%f%}

(?...)是一个三元,它设置提示符的颜色,并将其标记为零宽度。同样的方式,%f重置颜色,这也已经被标记。

您可以通过更新PS1变量来测试对提示符的更改,这样您就可以尝试不同的安排,并查看什么对您有效。

你可以用这种方式标记任何字符,所以要小心,提示符太短了!

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

https://stackoverflow.com/questions/19305291

复制
相关文章

相似问题

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