अंतर्राष्ट्रीय वर्णों को ठीक से प्रदर्शित करने के लिए मुझे zsh कैसे मिल सकता है?


7

मैंने अभी 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
➜  ~  

बैश के साथ यह इस तरह दिखता है (फ़ाइल नाम में rm -v ऑटो को दबाकर पूरा किया जाता है टैब दोनों मामलों में)।

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 और यह भी वर्तमान इनपुट के नीचे लाइन पर ठीक से पता चलता है जब वहाँ पर कई मैच कर रहे हैं टैब -समापन। हालाँकि, फ़ाइल से चयन करना टैब -कंपनी यह इनपुट लाइन पर गलत रास्ता दिखाती है, उसी के लिए जाती है जब केवल एक मैच होता है।

उपरोक्त उदाहरण अब इस तरह दिखता है zsh:

➜  ~  touch åäö.txt               
➜  ~  ls                          
åäö.txy
➜  ~  rm -v a<030a>a<0308>o<0308>.txt
åäö.txt
➜  ~  

अगर मेरे पास दो फाइलें हैं टैब यह इस तरह दिखता है:

➜  ~  touch åäö.txt               
➜  ~  touch öäå.txt                          
➜  ~  rm 
öäå.txt    åäö.txt

दबाकर उपरोक्त में से एक का चयन करना टैब फिर से और तीर कुंजियों का उपयोग करके, या पूरा होने से पहले केवल एक मैच करने के लिए या तो एक या ओ दबाकर:

➜  ~  rm o<0308>a<0308>a<030a>.txt
➜  ~  rm a<030a>a<0308>o<0308>.txt

क्या गलत है पर कोई सुझाव?


2
का आउटपुट क्या है echo $LANG में bash resp। zsh?
mpy

यह दोनों के लिए रिक्त है। मैं वैसे तो OS X 10.8.3 पर हूं।
Morgan

ठीक है, तो मैं बाहर हूँ (ओएस एक्स), क्षमा करें। लेकिन फिर भी कोशिश करें कि उदा। LANG=en_US.UTF-8zsh आप के साथ सभी संभावनाओं की पेशकश करनी चाहिए LANG=<TAB>, लेकिन en_US.UTF-8 जर्मन umlauts के साथ एकदम सही काम करता है।
mpy

export LANG=en_US.UTF-8 तय किया ls आउटपुट, हालांकि, ऑटो समापन अभी भी दिखाता है a<030a>a<0308>o<0308>.txt
Morgan

बस एक और विचार: क्या आपने संकलन किया है? zsh स्वयं? यदि नहीं, तो नवीनतम स्रोत को पकड़ो ( zsh.sourceforge.net/Arc/source.html ) और उपयोग करना सुनिश्चित करें ./configure --enable-multibyte। बाद make बस शुरू करके देखें ./Src/zsh उस संस्करण को स्थापित करने से पहले।
mpy

जवाबों:


3

LANG समस्या को हल करने के लिए @mpy धन्यवाद। उत्तर का उपयोग करना है:

export LANG=en_US.UTF-8

अपने में .zshrc

शेष समस्या पूर्ण प्रणाली के कारण होती है। दुर्भाग्य से पूरा होना एक राक्षस विशेषता है। इसमें शेल फ़ंक्शंस शामिल हैं या शायद स्क्रिप्ट को भी बुलाया जा रहा है और उस प्रक्रिया में संभवतः LANG फिर से गलत मान पर सेट है। यदि आपके पास रूट विशेषाधिकार हैं तो आप इस शेल स्क्रिप्ट कोड को डीबग कर सकते हैं)। सौभाग्य के साथ पूरा करने वाला गाइड


0

समस्या अभी भी पिछले संस्करणों पर समान है zsh जो आते हैं साथ में Mac OS X 10.8 (उर्फ माउंटेन लायन), 10.9 (उर्फ मावेरिक्स) और amp; 10.10 (उर्फ योसेमाइट) (मैं अभी भी 10.11 बीटा परीक्षण कर रहा हूं और इसके बारे में जानकारी का खुलासा नहीं कर सकता)। का पूरा होना zsh विफल हो रहा है।

port संस्करण 5.1.1 संस्करण के साथ कम से कम सही ढंग से काम कर रहा है:

/usr/bin/sudo port install zsh

परीक्षा:

/opt/local/bin/zsh

% touch hølé
% ls -l h टैब
→ ls -l hølé
% -rw-r--r-- 1 bob wheel 0 Apr 2 18:49 hølé
%


0

मुझे zsh का उपयोग करके आर्क लिनक्स में एक ही समस्या थी।

बैश का उपयोग करना सब कुछ ठीक काम करता है, लेकिन जब मैं zsh पर स्विच करता हूं तो कुछ अक्षर गलत प्रदर्शित किए गए (जैसे ñ, °)।

मैंने जोड़ लिया है export LANG="en_US.UTF-8" मेरे लिए .zshrc और कुछ नहीं हुआ।

मैंने zsh के अंदर LANG सेट करने के लिए सब कुछ किया और कुछ भी ठीक नहीं किया।

फिर मैंने अपना खोल वापस बदल दिया bash साथ में chsh -s /bin/bash और मैंने देखा कि मेरे एनवी वर्जन के साथ गलत था printenv LANG इसने मुझे दिखाया LANG=C

यह एक नई स्थापना है इसलिए मैं बनाना भूल गया /etc/locale.conf फ़ाइल और मेरे सेट करें LANG="en_US.UTF-8" और पुनः आरंभ करने के बाद सब कुछ सही हो जाता है।

उम्मीद है की यह मदद करेगा।


0

प्रयत्न

  1. एक Powerline संगत फ़ॉन्ट स्थापित किया जा रहा है https://github.com/powerline/fonts
  2. इन ईएनवी वैर को सेट करना .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"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.