使用 oh-my-zsh 製表符自動補全重音字元不起作用

使用 oh-my-zsh 製表符自動補全重音字元不起作用

我無法正確顯示包含重音字元的自動完成檔名,例如ã我的 shell 配置中的zsh哦我的zsh

我創建了一個文件名cão.txt來演示這個問題。如果您有興趣,那意味著dog葡萄牙語。

因此,當我嘗試像這樣自動完成時cat c<tab>,會發生這種情況:

% cat ca<0303>o.txt
hi dog

echo $0給我:-zsh

但是,如果我進入“普通”zsh會話,完全相同的自動完成功能可以正常工作:

% zsh
% echo $0
zsh
%  cat cão.txt
hi dog

我的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"

LANG我嘗試空的變量,還有"en_US.UTF-8""pt_PT.UTF-8"。另外,我仔細檢查了locale進入「普通」會話之前和之後的設定是否完全相同zsh

它在預設終端 OSX 應用程式和 iTerm2 中的工作方式也相同。

我使用的是 zsh 版本5.0.7

這是我的.zshrc文件,以及我正在使用的其他點文件。

我嘗試過oh-my-zsh以自動和手動方式卸載和安裝它,總是遇到使用自動完成顯示重音字元的相同問題。

答案1

這看起來像是正常的預設zsh行為。在自動完成過程中是否組合顯示組合字元由combining_charsshell 選項控制。要完成此操作cão,請將其放入您的~/.zshrc文件中。

setopt combining_chars

我無法重現您的行為,這是非登入 ( zshvs -zsh) shell 的預設行為。

zsh -f在和 非登入的情況下zsh,它們僅取得設定文件/etc/zshenv,而不取得其他設定檔。也許您已/etc/zshenv進行配置,setopt combining_chars並且初始化序列中稍後的某些操作正在重置它。

相關內容