在Ubuntu上出现了zsh标签补全的故障问题

9
我这里出现了一个非常烦人的 bug:

% git s<TAB> 变成了

% git   sgit  s  
send-email   -- send collection of patches as emails  
send-pack     -- push objects over git protocol to another repository  
...

它只是重复了命令。 如果我调整屏幕大小,它会恢复正常:git s 我该如何解决这个问题?

你的 TERM 环境变量是什么?你在使用哪个终端? - sarnold
我只是使用默认的Ubuntu终端。我的TERM是xterm。 - BPm
默认的Ubuntu终端是什么? - sarnold
1
哎呀,我在我的Ubuntu 12.04上使用gnome-terminalTERM=xtermzsh无法重现这个问题。如果你无法解决这个问题,每次出现问题时使用^L请求终端重新绘制,这比调整窗口大小要快得多。 - sarnold
是的,^L就可以解决问题。但是我想修复这个愚蠢的错误 :( - BPm
应该在Ask Ubuntu网站上。 - Greg
2个回答

9
我明白了!该死,这是我的提示符。
而不是: PS1=$'%B%F{$fg[green]%}${PWD/#$HOME/~}%{$reset_color%}`git-prompt` ${VIMODE} ' 我应该只是这样做: PS1=$'%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}`git-prompt` ${VIMODE} ' 现在一切都正常了...

1

我在 macOS 上遇到了这个问题,想分享一下我是如何解决的。

据我所知,当您的自定义提示符存在问题时,就会出现这种情况。我的提示符是:

PROMPT='%{$fg[green]%}%n@%m%{$reset_color%}:%{$fg[cyan]%}${(%):-%~}$reset_color%}$ '

经过仔细检查,我注意到最后一个颜色变化($reset_color)被错误地包裹了起来。然后我将提示符更改如下:
PROMPT='%{$fg[green]%}%n@%m%{$reset_color%}:%{$fg[cyan]%}${(%):-%~}%{$reset_color%}$ '
这样一来,我的问题就解决了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接