आपको लगता है कि UTF-8 एन्कोडिंग त्रुटि हो रही है, तो यह है कि hunspell
प्रक्रिया एक तर्क कुछ अन्य एन्कोडिंग को निर्दिष्ट के साथ चलाने जा रहा है इसका मतलब है। जब मैं अपने प्रक्रिया सूची की जांच, उदाहरण के लिए, मैं Emacs करने के लिए इस बच्चे की प्रक्रिया को देखने के लिए एक बार इसे शुरू कर दिया है:
/usr/bin/hunspell -a -B -i iso-8859-1
ispell-get-coding-system
समारोह क्या जो एन्कोडिंग का उपयोग करना, बड़े ispell-dictionary-alist
चर का परीक्षण करके जो यह करता है फैसला करता है ऐसा लगता है कि Emacs को ज्ञात हर भाषा की सूची है। फ़ंक्शन आमतौर पर उस प्रविष्टि के अंतिम प्रतीक को पकड़ता है जो उस भाषा से मेल खाता है जिसे आप देखना चाहते हैं। कुछ कारणों से मुझे पता लगाने के लिए परेशान नहीं था, इस सूची में iso-8859-1
अंग्रेजी के लिए है - इसके बजाय, आप जानते हैं, अपने वास्तविक बफर में एन्कोडिंग पर ध्यान देना। मुझे पता है, ऐसा कोई मतलब नहीं है। लेकिन हम आगे बढ़ते हैं। ,
;; I could never get Emacs to pay attention to this
(setq ispell-dictionary-alist
'((nil "[A-Za-z]" "[^A-Za-z]" "[']" t ("-d" "en_US") nil utf-8)))
लेकिन मैं इस सेटिंग के लिए वास्तव में काम कभी नहीं मिल सकता है:
आपको लगता है कि तुम आठ मानकों के अंतिम रूप में चर ispell-dictionary-alist
के लिए अपने स्वयं के मूल्य निर्धारित करके इसे ओवरराइड और इस्तेमाल कर सकते हैं कि utf-8
चाहे या नहीं मैं अपने .emacs
में किया था एक (load-library "ispell")
पहले, या क्या मैं इसे उन में से एक के अंदर किया:
;; Did not work for me either.
(eval-after-load "ispell" '(progn ...))
किसी भी तरह से, अगर मैं एक ताजा Emacs शुरू औरमें प्रवेश कियाऔर टाइप ispell-dictionary-alist
और दबाए गए नियंत्रण-जे, फिर विशाल मूल सूची ispell
बनाता है। हर बार।
इसलिए मैंने इस विशाल सूची की पूरी समस्या के आसपास एक अंतराल करने का फैसला किया और को हमेशा वापस करने के लिए ispell-get-coding-system
फ़ंक्शन को फिर से लिखने का निर्णय लिया। निश्चित रूप से, यह अगली बार मुझे काट देगा कि मैं एक फ़ाइल खोलता हूं जो वास्तव में iso-8859-1
में है, लेकिन मैं वैसे भी ऐसा नहीं करता, है ना?
मेरी .emacs
फ़ाइल में सफलतापूर्वक इसे लागू करने के (अच्छी तरह से, ~/.emacs.d/init.el
लेकिन वह इतना टाइपिंग एक स्टैक ओवरफ़्लो जवाब के लिए लेता है) इस कोड की आवश्यकता:
;; It works! It works! After two hours of slogging, it works!
(if (file-exists-p "/usr/bin/hunspell")
(progn
(setq ispell-program-name "hunspell")
(eval-after-load "ispell"
'(progn (defun ispell-get-coding-system() 'utf-8)))))
मैं अब hunspell
अप और एक विजेता की तरह काम है! दुर्भाग्य से, मैं इसे काम करने के माध्यम से पूरा कारण उम्मीद कर रहा था कि इसका शब्दकोश एस्पेल की तुलना में काफी बड़ा था, लेकिन मुझे लगता है कि यह कुछ शब्दों को हाइलाइट कर रहा है। ओह ठीक है, मैं एक और दृष्टिकोण की कोशिश करूंगा।मैं मूल रूप से एक वर्तनी परीक्षक चाहता हूं जिसे /usr/share/dict/american-english-huge
शब्दकोश के साथ लोड किया जा सकता है जो उबंटू पर उपलब्ध है, लेकिन aspell
कई तरीकों से मृत्यु हो गई जब मैंने अपने क्षितिज का विस्तार करने की कोशिश की। शायद मैं hunspell
के साथ भाग्यशाली होगा - हम देखेंगे।
धन्यवाद। यह बहुत ही बढ़िया है। स्वीडिश जैसी भाषा का उपयोग करने के लिए, Hunspell i/aspell से बेहतर तरीका है , और यहां तक कि अगर मुझे utf8 में एन्कोड किए गए फ़ाइलों के लिए देखना नहीं है, तो यह अभी भी कमाल है। धन्यवाद! – monotux
आपके द्वारा वर्णित दृष्टिकोण की कोशिश करने में मुझे एक त्रुटि मिलती है। सबसे पहले मैंने 'हुडो एपीटी-हुनस्प्ल इंस्टॉल' किया था, फिर मैंने डाला मेरे .emacs में कोड ब्लॉक ('if' निर्माण के साथ आखिरी वाला)। जब मैं चेक वर्तनी करने का प्रयास करता हूं तो मुझे निम्नलिखित में मिलता है \ * संदेश \ *: 'नई इस्पल प्रक्रिया शुरू करना [अंग्रेजी] ... त्रुटि सक्षम करना फ्लाईस्पेल मोड: ("अंग्रेजी" नामक शब्दकोश के लिए प्रत्यय या शब्दकोश फ़ाइलों को नहीं खोल सकता। @ (#) Internat आयनल इस्पेल संस्करण 3.2.06 (लेकिन वास्तव में हनस्पेल 1.2.14)) '। समस्या क्या है? –
मुझे बहुत मदद की, धन्यवाद! हालांकि इस उत्तर को खोजने में 2 घंटे लग गए :) – daroczig