使用 oh-my-zsh 选项卡自动完成重音字符不起作用

nun*_*nos 5 zsh autocomplete oh-my-zsh

我无法正确显示包含重音字符的自动完成文件名,例如ã在我的 shell 配置zshoh-my-zsh 中

我创建了一个文件名cão.txt来演示这个问题。如果你有兴趣,那就是dog葡萄牙语。

因此,当我尝试像 那样自动完成时cat c<tab>,会发生这种情况:

% cat ca<0303>o.txt
hi dog
Run Code Online (Sandbox Code Playgroud)

echo $0给我:-zsh

但是,如果我去一个“普通”zsh会话,完全相同的自动完成工作正常:

% zsh
% echo $0
zsh
%  cat cão.txt
hi dog
Run Code Online (Sandbox Code Playgroud)

我的locale是这样的:

LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)

LANG变量我试过它是空的,"en_US.UTF-8"还有"pt_PT.UTF-8"。此外,我locale在进入“普通”zsh会话之前和之后仔细检查了设置是否完全相同。

此外,它在默认终端 OSX 应用程序和 iTerm2 中的工作方式相同。

我正在使用 zsh 版本5.0.7

这里是我的.zshrc文件,以及我使用的其他点文件。

我已经尝试oh-my-zsh以自动和手动方式卸载和安装它,但始终存在使用自动完成显示重音字符的相同问题。

And*_*nke 1

这看起来像是正常的默认zsh行为。在自动完成过程中是否组合显示组合字符由combining_charsshell 选项控制。要完成此操作c\xc3\xa3o,请将其放入您的~/.zshrc文件中。

\n\n
setopt combining_chars\n
Run Code Online (Sandbox Code Playgroud)\n\n

我无法重现您的行为,这是非登录 ( zshvs -zsh) shell 的默认行为。

\n\n

zsh -f在和 非登录的情况下zsh,它们仅获取配置文件/etc/zshenv,而不获取其他配置文件。也许您已/etc/zshenv进行配置setopt combining_chars,并且初始化序列中稍后的某些操作正在重置它。

\n