मैं विंडोज पीसी पर हंसेल कैसे सेट कर सकता हूं?


10

मैं अपने hunspell शब्दकोशों में है C:\hunspell\। यह होता है .dicऔर .affतीन भाषाओं के लिए फ़ाइलें: en_GB, en_US, और nb_NO। Emacs में hunspell काम करने के तरीके के बारे में मुझे वेब पर जो विवरण मिलते हैं, वे मुझे भ्रमित करते हैं।

एमएसीएस में इन तीन हंसेल शब्दकोशों का उपयोग करने में सक्षम होने के लिए मुझे अपने इनिट फ़ाइल में न्यूनतम कोड क्या चाहिए?

मैंने निम्नलिखित कोड एक वेब साइट द्वारा सुझाए गए हैं:

(add-to-list 'exec-path "C:/hunspell/bin/")
(setq ispell-program-name (locate-file "hunspell"
                       exec-path exec-suffixes 'file-executable-p))

लेकिन जब शब्दकोश को बदलना चाहते हैं M-x ispell-change-dictionary, तो मुझे निम्नलिखित संदेश मिलता है:

ispell-phaf: नील के लिए कोई मिलान प्रविष्टि नहीं।



जवाबों:


4

Emacs सेटअप:

(setq ispell-program-name "c:/what-ever-path/hunspell")

;; "en_US" is key to lookup in `ispell-local-dictionary-alist'.
;; Please note it will be passed as default value to hunspell CLI `-d` option
;; if you don't manually setup `-d` in `ispell-local-dictionary-alist`
(setq ispell-local-dictionary "en_US") 

(setq ispell-local-dictionary-alist
      '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8)))

हंसेल शब्दकोश सेटअप:

hunspell -Dडॉस विंडो में चलाएं जो डिक्शनरी की खोज करेगा हंसेल की डिक्शनरी। अपने शब्दकोश को उस निर्देशिका में कॉपी करें। यह आपके लिए आवश्यक न्यूनतम सेटअप है।

देखें http://blog.binchen.org/posts/what-s-the-best-spell-check-set-up-in-emacs.html अधिक तकनीकी जानकारी के लिए।


मेरे लिए काम किया! साथ मेरे सेटअप use-packageहै(use-package ispell :config (setq ispell-program-name "C:/Program Files (x86)/hunspell-1.3.2-3-w32-bin/bin/hunspell.exe") (setq ispell-local-dictionary "en_US") (setq ispell-local-dictionary-alist '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8))))
Lorem Ipsum

अंग्रेजी वर्तनी जांच के लिए अन्य विन्यास कार्यों के बिना hunspell के लिए विंडोज 10 में बस doq (सेट ispell-program-name "c: /what-ever-path/hunspell.exe") करें।
यू शेन

2

मैं थोड़ी देर पहले खुद इस समस्या में भाग गया। यदि मुझे सही ढंग से याद है, तो आपको त्रुटि संदेश मिलने का कारण hunspellयह है कि वर्तमान परिवेश के आधार पर स्वयं को कॉन्फ़िगर करने में असमर्थ है। तो इसे ठीक करने के लिए, आपको hunspellविशिष्ट ispellचर को कॉन्फ़िगर करने की आवश्यकता है । निम्नलिखित कोड अंग्रेजी शब्दकोश के लिए हंसेल सेटअप के लिए पर्याप्त होना चाहिए:

(require 'flyspell)
(setq ispell-dictionary "english")
(add-to-list 'ispell-local-dictionary-alist '(("english"
                                               "[[:alpha:]]"
                                               "[^[:alpha:]]"
                                               "[']"
                                               t
                                               ("-d" "en_US")
                                               nil
                                               utf-8)))
(setq ispell-hunspell-dictionary-alist ispell-local-dictionary-alist)

महत्वपूर्ण हिस्सा यह है ispell-hunspell-dictionary-alist, इसे एक उचित शब्दकोश सूची के साथ आबाद करना होगा, जैसे कि इसमें दिया गया है ispell-local-dictionary-alist

हालाँकि इस सूची के बारे में काफी कुछ जानकारी है। यदि आप इसके बारे में अधिक जानना चाहते हैं, तो बेझिझक पढ़ सकते हैं M-x describe-variable ispell-local-dictionary-alist


+1 को पॉप्युलेट करने के डिफ़ॉल्ट प्रयास में कुछ गड़बड़ लगता है ispell-hunspel-dictionary-alist। इसके बजाय (require 'flyspell)आप विचार कर सकते हैं(with-eval-after-load "ispell" ...)
एंड्रयू स्वान

1

उन सभी शब्दकोशों को स्थापित करें जिन्हें आप उस स्थान पर चाहते हैं, जिसमें hunspell खोज करता है; इसके साथ खोजें hunspell -D। एक बार स्थापित होने के बाद, यह कमांड उन्हें दिखाना चाहिए।

Init फ़ाइल में, उनमें से केवल एक जोड़ें जैसे कि मेरे पास है en_GBऔर en_USशब्दकोश इंस्टॉल किए गए हैं। मैंने अपनी इनिट फ़ाइल में, यह:

(setenv "DICTIONARY" "en_GB")

Emacs खोलने पर, बस सक्षम करें flyspell-mode। Emacs को यह कहना चाहिए कि यह डिफ़ॉल्ट डिक्शनरी के साथ ispell है। इसका मतलब en_GBहमारे उदाहरण के लिए कार्रवाई में है। अब यदि आप स्विच करना चाहते हैं, तो बस करें M-x ispell-change-dictionaryऔर नया शब्दकोश नाम दें en_US। अब अन्य शब्दकोश कार्रवाई में होना चाहिए। यह, फिर से Emacs द्वारा यह कहते हुए अधिसूचित किया जाएगा कि यह ispell शुरू हुआ लेकिन इस बार en_USशब्दकोश के साथ ।


1

मान लें कि आप Emacs (24.4 या इसके बाद के संस्करण के एक संस्करण का उपयोग कर रहे हैं, जैसा कि मुझे याद है) तो आपको बस इतना करना होगा कि आप सही शब्दकोश नाम का उपयोग कर रहे हैं, और Emacs स्वचालित रूप से बाकी काम करेंगे।

मुख्य समस्या यह है कि विंडोज एक अलग भाषा विवरण प्रारूप का उपयोग करता है, उदाहरण के लिए ब्रिटिश अंग्रेजी को ENG कहा जाता है , और US अंग्रेजी ENU है । यह आपकी शब्दकोश फ़ाइलें बुलाया जाना चाहिए मतलब है ENU.dic और ENU.aff यूएस अंग्रेज़ी के लिए, और ENG.dic और ENG.aff ब्रिटिश अंग्रेजी के लिए।

"डिफॉल्ट" डिक्शनरी का होना भी जरूरी हो सकता है या होन्स्पेल बहुत खुश नहीं हो सकता है। आप डिफ़ॉल्ट को बाध्य करने के लिए DICTIONARY परिवेश चर भी सेट कर सकते हैं ।

दुर्भाग्य से मैं यह नहीं बता सकता कि आपका नॉर्वेजियन शब्दकोश क्या कहलाता है। यदि आप Windows में नॉर्वेजियन लोकेल का उपयोग कर रहे हैं, तो आपको मूल्यांकन करके Emacs के भीतर जांच करने में सक्षम होना चाहिए:

(getenv "LANG")

जो आपको वह सेटिंग दिखाएगा जो Emacs उपयोग कर रहा है।


0

यह केवल एक अनुमान है, लेकिन शायद आपको यह बताने की जरूरत है कि आप "डिफ़ॉल्ट" के रूप में किस भाषा का उपयोग करना चाहते हैं:

(setq ispell-dictionary "en") ; default dictionary

डिफ़ॉल्ट मान ispell-dictionaryहै nil, इसलिए यह आपकी समस्या का कारण हो सकता है।


धन्यवाद मार्क, आपके टिप के लिए, लेकिन दुर्भाग्य से यह मेरी स्थिति को बदलने के लिए नहीं लगता है। त्रुटि संदेश अभी भी पॉप अप करता है
myotis
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.