zsh选项卡完成混乱命令行格式

时间:2013-07-29 18:43:45

标签: shell zsh

我在OS X上运行带有oh-my-zsh的zsh。每次使用zsh的真棒选项卡完成时,当前命令行提示符上的格式化都会搞砸了。例如:

我将输入cd fo并尝试Tab键完成'foo'目录; zsh提示完成,但在等待我完成时将命令行更改为cd fo cd fo。这不是什么大问题,但非常讨厌。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

之前我遇到过同样的问题,我的解决方案是禁用一些zsh插件。第二个可能性是您的颜色主题可能包含导致此问题的错误。

# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git)

这是〜/ .zshrc 文件中插件部分的最终版本。括号之间的任何其他插件可能是您的情况的原因。

如果问题仍然存在,您需要发布~/.zshrc,让我们检查一下。

答案 1 :(得分:0)

我在PopOS和Arch Linux上遇到了同样的问题。我从各个地方尝试了一堆解决方案,但是唯一适合我的解决方案是romkatv提出的this关于oh-my-zsh github存储库上的问题的建议。

解决方案是使用您在oh-my-zsh中使用的任何主题制作.zsh-theme文件的副本,并用%{%G<CHARACTER>%}包围所有非ASCII字符(如表情符号)

例如,默认的oh-my-zsh主题robbyrussel包含2个非ASCII字符。提示中的“➜”字符

PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"

和git目录提示中的'✗'字符

ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"

在这样的2个非ASCII字符周围使用%{%G<character>%}

PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}%{%G➜%} )"

还有这个

ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%{%G✗%}"

为我解决了这个问题。