我在OS X上运行带有oh-my-zsh的zsh.每次我使用zsh的真棒选项卡完成时,当前命令行提示符上的格式化都会搞砸了.例如:
我将输入cd fo并尝试tab-complete为'foo'目录; zsh提示完成,但在cd fo cd fo等待我完成时将命令行更改为.这不是什么大问题,但非常讨厌.有什么建议?
我在 PopOS 和 Arch linux 上遇到了同样的问题。我尝试了很多来自不同地方的解决方案,但唯一对我有用的解决方案是romkatv 关于 oh-my-zsh github 存储库上的一个问题的建议。
\n解决方案是复制.zsh-theme您在 oh-my-zsh 中使用的任何主题的文件,并将所有非 ASCII 字符(如表情符号)括起来%{%G<CHARACTER>%}
例如,默认的 oh-my-zsh 主题robbyrussel包含 2 个非 ASCII 字符。提示符中的 \'\xe2\x9e\x9c\' 字符
PROMPT="%(?:%{$fg_bold[green]%}\xe2\x9e\x9c :%{$fg_bold[red]%}\xe2\x9e\x9c )"\nRun Code Online (Sandbox Code Playgroud)\n以及 git 目录提示中的 \'\xe2\x9c\x97\' 字符
\nZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}\xe2\x9c\x97"\nRun Code Online (Sandbox Code Playgroud)\n像这样使用%{%G<character>%}大约 2 个非 ASCII 字符
PROMPT="%(?:%{$fg_bold[green]%}%{%G\xe2\x9e\x9c%} :%{$fg_bold[red]%}%{%G\xe2\x9e\x9c%} )"\nRun Code Online (Sandbox Code Playgroud)\n和这个
\nZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%{%G\xe2\x9c\x97%}"\nRun Code Online (Sandbox Code Playgroud)\n为我解决了这个问题。
\n我以前也遇到过同样的问题,我的解决方案是禁用一些 zsh 插件。第二种可能性是您的颜色主题可能包含导致此问题的错误。
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git)
Run Code Online (Sandbox Code Playgroud)
这是~/.zshrc文件中我的插件部分的最终版本。括号之间的任何其他插件可能是您的情况的原因。
如果您的问题仍然存在,您需要发布您的信息~/.zshrc,以便我们检查其中的内容。