ã
내 쉘 구성에서 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
셸 옵션에 의해 제어됩니다. 이렇게 하려면 파일 cão
에 넣으세요 ~/.zshrc
.
setopt combining_chars
zsh
비로그인( vs -zsh
) 쉘 의 기본 동작인 귀하의 동작을 재현할 수 없습니다 .
zsh -f
로그인하지 않은 경우에는 zsh
프로필만 가져오고 /etc/zshenv
다른 프로필은 가져오지 않습니다. 어쩌면 당신이 /etc/zshenv
그것을 구성했고 setopt combining_chars
나중에 초기화 시퀀스에서 뭔가가 그것을 재설정할 수도 있습니다.