
我無法正確顯示包含重音字元的自動完成檔名,例如ã
我的 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_chars
shell 選項控制。要完成此操作cão
,請將其放入您的~/.zshrc
文件中。
setopt combining_chars
我無法重現您的行為,這是非登入 ( zsh
vs -zsh
) shell 的預設行為。
zsh -f
在和 非登入的情況下zsh
,它們僅取得設定文件/etc/zshenv
,而不取得其他設定檔。也許您已/etc/zshenv
進行配置,setopt combining_chars
並且初始化序列中稍後的某些操作正在重置它。