奇怪的 zsh 自动完成行为

Led*_*eda 5 terminal zsh autocomplete macos

每次我对 zsh 使用 tab 自动完成而不是完成当前字符串时,它都会给我一个新的字符串 + 选项来完成。很难解释,所以这里有一个例子。如果我输入“ls Nue”并点击 Tab,就会发生这种情况。

[me@mbp:/Volumes/hdd/music]: ls Neu    ls Neu
 Neuraxis/              Neurosis/              Neutral\ Milk\ Hotel/
Run Code Online (Sandbox Code Playgroud)

如果我删除第二个“ls Nue”,我将无法删除空格和第一个。如果我按回车,就好像我刚刚输入了一个空行。有谁知道这是怎么回事。有点谷歌搜索表明这是我的提示问题。

"%{$fg[blue]%}[%n@%m%{$fg_bold[magenta]%}:%d%{$reset_color%}%{$reset_color%}$fg[blue]]$reset_color%}: "
Run Code Online (Sandbox Code Playgroud)

Den*_*son 5

我不确定这是否会导致您的问题,但您的提示可能需要%{%}围绕颜色序列或其他非打印元素进行一些配对。如果您显示 的值是什么$PS1,我可以检查它。