Zshを使い始めたばかりで、気に入っています。しかし、私は国際的なキャラクターに関しては厄介なことに遭遇しました:
➜ ~ touch åäö.txt
➜ ~ ls
Desktop Dropbox Music Sites
Documents Library Pictures a??a??o??.txt
Downloads Movies Public
➜ ~ rm -v a<030a>a<0308>o<0308>.txt
åäö.txt
➜ ~
Bashを使用すると、次のようになります(rm -v
のファイル名はを押すと自動的に完了します TAB 両方の場合において)。
johan@retina ~ $ touch åäö.txt
johan@retina ~ $ ls
Desktop Dropbox Music Sites
Documents Library Pictures åäö.txt
Downloads Movies Public
johan@retina ~ $ rm -v åäö.txt
åäö.txt
johan@retina ~ $
zsh
でこれを修正するにはどうすればよいですか?
編集:
export LANG=en_US:UTF-8
を設定すると、たとえばの出力が修正されます。 ls
また、複数の一致がある場合は、現在の入力の下の行に正しく表示されます TAB-完了。ただし、ファイルを選択する TAB-完了入力行に間違った方法が表示されます。一致するものが1つしかない場合も同様です。
上記の例は、zsh
で次のようになります。
➜ ~ touch åäö.txt
➜ ~ ls
åäö.txy
➜ ~ rm -v a<030a>a<0308>o<0308>.txt
åäö.txt
➜ ~
一致する2つのファイルがある場合 TAB-完了は次のようになります。
➜ ~ touch åäö.txt
➜ ~ touch öäå.txt
➜ ~ rm
öäå.txt åäö.txt
を押して上記のいずれかを選択します TAB もう一度矢印キーを使用するか、aまたはoを押して、完了する前に1つだけ一致させると、次のようになります。
➜ ~ rm o<0308>a<0308>a<030a>.txt
➜ ~ rm a<030a>a<0308>o<0308>.txt
何が問題なのかについて何か提案はありますか?
LANGの問題を解決してくれた@mpyに感謝します。答えは使用することです:
export LANG=en_US.UTF-8
あなたの.zshrc
。
残りの問題は、完了システムが原因です。残念ながら、完成はモンスターの特徴です。これには、シェル関数またはおそらく呼び出されるスクリプトが含まれ、そのプロセスのどこかで、おそらくLANGが再び間違った値に設定されます。 root権限を持っている場合は、このシェルスクリプトコードをデバッグできます)。 完了ガイド で頑張ってください。
試してみてください
.zshrc
に設定する:LANG = "en_US.UTF-8" 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"
Zshを使用したArchLinuxでも同じ問題が発生しました。
Bashを使用すると、すべてが正常に機能しますが、zshに切り替えると、一部の文字が正しく表示されませんでした(例:ñ、°)。
export LANG="en_US.UTF-8"
を.zshrc
に追加しましたが、何も起こりませんでした。
Zsh内にLANGを設定するためにすべてを行いましたが、何も修正されていません。
次に、シェルをchsh -s /bin/bash
でbash
に戻しましたが、printenv LANG
でenvvarLANGが間違っていることに気付きました。LANG=C
が表示されました。
これは新規インストールなので、/etc/locale.conf
ファイルを作成してLANG="en_US.UTF-8"
を設定するのを忘れ、再起動するとすべてが完全に機能します。
お役に立てれば。
問題は、Mac OS X
10.8(別名Mountain Lion)、10.9(別名Mavericks)、および10.10(別名Yosemite)に付属するzsh
の最後のバージョンでも同じです(私はまだ10.11のベータテストを行っていますそしてそれについての情報を開示することはできません)。 zsh
の完了に失敗しています。
port
バージョンは、少なくともバージョン5.1.1では正しく機能しています。
/usr/bin/Sudo port install zsh
テスト:
/opt/local/bin/zsh
% touch hølé
% ls -l htab
→ ls -l hølé
% -rw-r--r-- 1 bob wheel 0 Apr 2 18:49 hølé
%