![使用 oh-my-zsh 製表符自動補全重音字元不起作用](https://rvso.com/image/36010/%E4%BD%BF%E7%94%A8%20oh-my-zsh%20%E8%A3%BD%E8%A1%A8%E7%AC%A6%E8%87%AA%E5%8B%95%E8%A3%9C%E5%85%A8%E9%87%8D%E9%9F%B3%E5%AD%97%E5%85%83%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我無法正確顯示包含重音字元的自動完成檔名,例如ã
我的 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
並且初始化序列中稍後的某些操作正在重置它。