I just started using zsh, and love it. However, I've stumbled upon an annoyance when it comes to international characters:
➜ ~ 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 ➜ ~
With bash it looks like this (the filename in
rm -v is auto completed by pressing TAB in both cases).
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 ~ $
How can I fix this with
export LANG=en_US:UTF-8 fixes the output of e.g.
ls and also shows it properly on the line below current input when there are multiple matches on TAB-completion. However, selecting the file from TAB-completion it shows the wrong way on the input line, the same goes for when there is only one match.
The above example now looks like this with
➜ ~ touch åäö.txt ➜ ~ ls åäö.txy ➜ ~ rm -v a<030a>a<0308>o<0308>.txt åäö.txt ➜ ~
If I have two files matching on TAB-completion it looks like this:
➜ ~ touch åäö.txt ➜ ~ touch öäå.txt ➜ ~ rm öäå.txt åäö.txt
Selecting one of the above by pressing TAB again and using arrow keys, or pressing either a or o to only make one match before completion generates this:
➜ ~ rm o<0308>a<0308>a<030a>.txt ➜ ~ rm a<030a>a<0308>o<0308>.txt
Any suggestions on what's wrong?