2010-04-21 16 views
5

मैं विम में इन पंक्तियों के होते हैं:विम में यूटीएफ -8 लाइनों को कैसे सॉर्ट करें?

a 
c 
b 
e 
é 
f 
g 

और जब मैं :%sort करते हैं, मैं इस मिल:

a 
b 
c 
e 
f 
g 
é 

जाहिर है, "é" लाइन अंत में नहीं होना चाहिए, यह होना चाहिए "ई" लाइन के बाद। क्या इन लाइनों को सही ढंग से क्रमबद्ध करने के लिए विम प्राप्त करना संभव है? पात्रों के लिए एएससीसीआई कुंजी का उपयोग नहीं बल्कि वास्तविक चरित्र।

मैंने :!sort (जीएनयू sort उपयोगिता का उपयोग करने के लिए भी प्रयास किया) लेकिन मुझे एक ही परिणाम मिल गया।

+1

यह उतना स्पष्ट नहीं है जितना आप सोचते हैं। सटीक आदेश लोकेल पर बहुत निर्भर करता है। मेरा अनुमान है कि आप जिस स्थानीय का उपयोग करते हैं वह वह नहीं है जिसे आप उपयोग करना चाहते हैं। आपके सिस्टम पर 'लोकेल' प्रिंट कमांड क्या है? –

+0

सबकुछ 'fr_CA.UTF-8' है। – remi

उत्तर

0

मैं :%!sort का उपयोग कर निम्नलिखित मिलती है:

a 
b 
c 
e 
é 
f 
g 

जो कि क्या होने आते है। ऐसा लगता है कि आपके लोकेल सेट अप को दोषी ठहराया जा सकता है। मुझे यकीन नहीं है कि वास्तव में क्या गलत है, लेकिन FWIW, मेरे पास निम्न पर्यावरण सेटिंग है: LANG=en_GB.UTF-8

+0

वही यहाँ। मैं उबंटू 9.04 पर 'सॉर्ट' 6.10 के साथ हूं। –

+0

यह अजीब बात है, मेरे पास 'LANG = fr_CA.UTF-8' और 'LC_ALL = fr_CA.UTF-8' है। – remi

3

:%sort और :%!sort आवश्यक रूप से उसी तरह काम नहीं करते हैं। :help sort उद्धरण:

सॉर्टिंग के बारे में विवरण पर लाइब्रेरी फ़ंक्शन का उपयोग करने पर निर्भर करता है। कोई गारंटी नहीं है कि सॉर्टिंग "स्थिर" है या वर्तमान लोकेल का पालन करता है। आप को आजमाएं।

दूसरी तरफ, जीएनयू सॉर्ट वर्तमान लोकेल के अनुसार है। man sort के शब्दों में:

* चेतावनी * स्थान पर्यावरण द्वारा निर्दिष्ट सॉर्ट क्रम को प्रभावित करता है। देशी बाइट मानों का उपयोग करने वाले पारंपरिक सॉर्ट ऑर्डर प्राप्त करने के लिए LC_ALL = C सेट करें।

अपने सिस्टम (fr_CA.UTF-8 के साथ Ubuntu 9.10 अस्थायी रूप से सेट) :%sort प्रकार पर के रूप में C या POSIX स्थापित किया गया था, तो, जबकि फ्रेंच स्थान के अनुसार :%!sort प्रकार।

मेरा अनुमान है कि आप शुरू में दोनों :%sort और :%!sort एक POSIX की तरह वातावरण के तहत (जो एक ही परिणाम सामने आए) की कोशिश की है, और उसके बाद ही :%sort का उपयोग कर विभिन्न स्थानों (जो हमेशा वापस आ POSIX की तरह आदेश के साथ अपने प्रयोगों को जारी रखा है)। क्या आप इसकी पुष्टि कर सकते हैं?

+0

लोकेल के संदर्भ में ':% sort' और':%! Sort' के बीच स्पष्टीकरण के लिए धन्यवाद। हालांकि, 'LC_ALL' के साथ भी' fr_CA.UTF-8' पर सेट किया गया है, ':%! Sort' कमांड अभी भी गलत तरीके से लाइनों को सॉर्ट करता है। समस्या शायद विम से संबंधित नहीं है, क्योंकि नियमित टर्मिनल में फ़ाइल पर 'sort' चलाना ठीक से काम नहीं करता है। मैं एक मैक पर हूं ताकि समस्या हो। मैं उसमें देख लूंगा। – remi

+0

यह अजीब बात है ...आप सही हैं कि पहले जीएनयू सॉर्ट पर ध्यान केंद्रित करना बेहतर है, क्योंकि समस्या विम-विशिष्ट नहीं दिखती है। मेरे पास अभी मैक तक पहुंच नहीं है, इसलिए मैं आपकी मदद नहीं कर सकता, लेकिन मुझे यह पता चला है: http://discussions.info.apple.com/thread.jspa?messageID=11129073 शायद यह चर्चा है किसी भी तरह प्रासंगिक। सौभाग्य! – Bolo

संबंधित मुद्दे