2013-04-28 2 views
9

उपयोग करने के लिए मैं मुसीबत रिवर्स इंजीनियरिंग Aquamacs NSSpellChecker का उपयोग/कार्यक्षमता को निकालने के लिए हो रही है। मैं स्रोत से Emacs के एक नंगे हड्डियों के निर्माण में उस उपयोग/कार्यक्षमता को शामिल करना चाहता हूं। मैंने प्रतीत होता है प्रासंगिक फाइलें - ns-win.el; flyspell.el; और ispell.el - हालांकि, एक्वामाक्स से Emacs तक उन फ़ाइलों को बस प्रतिस्थापित करने से पॉप-अप मेनू को ओएसएक्स के मूल में वर्तनी-परीक्षक चलाने के लिए सक्षम नहीं किया जाता है। मुझे पहेली में एक या अधिक टुकड़े याद आ रहे हैं - मैंने सभी एक्वामैक * .gz फ़ाइलों को खोला है और उन सभी फ़ाइलों के भीतर कुछ खोजशब्दों की खोज की है, लेकिन मुझे कोई अन्य फाइल नहीं मिली है जो उनके जैसा दिखती है इस कार्यक्षमता के साथ कुछ करने के लिए। कार्यक्षमता Aquamacs before द्वारा सक्षम है इसकी साइट-start.el शुरू की गई है।OSX - को विन्यस्त Emacs NSSpellChecker

मैं BzR का उपयोग करके टारबॉल का उपयोग कर स्रोत से Emacs निर्माण करने के लिए कैसे, और यह भी सीखा है। यदि कोई जानता है कि निर्माण प्रक्रिया के दौरान NSSpellChecker को कॉन्फ़िगर कैसे करें, तो यह बहुत अच्छा होगा।

कुछ भी नहीं मैं इंटरनेट दूर से वर्णन करता है कि ऐसा करने के तरीके पर पाया है नहीं है।

Aspell की वर्तनी जाँच समारोह मुझे क्या जीवन देर 80 के दशक में वापस की तरह था की याद दिलाता है। मैंने वर्तनी-जांच विकल्पों का चयन करने के लिए बटन के साथ पॉप-अप मेनू का शौक बढ़ाया है।

http://www.emacswiki.org/cgi-bin/wiki/BuildingAquamacs

संपादित करें: 1:

यहाँ Aquamacs निर्माण, और निर्माण स्क्रिप्ट में देख के लिए एक स्पष्टीकरण के लिए लिंक है मेरी करने के लिए सूची पर अगले है निर्माण लिपियों के लिए एक छोटे से अधिक है NSSpellChecker के बारे में कहें, इसलिए अतिरिक्त फ़ाइलों को देखने की आवश्यकता है: nsterm.m और nsfns.m। मुझे नहीं लगता कि aquamacs-menu.el या osxkeys.el आवश्यक हैं, क्योंकि साइट-start.el के बाद लोड। यह अधिक से अधिक देख रहा है जैसे NSSpellChecker उपरोक्त फाइलों के संयोजन के साथ, निर्माण प्रक्रिया के दौरान निष्पादन योग्य अनुप्रयोग में हार्ड-कोड किया गया है।

संपादित करें 2: हाँ, यह पहेली का गुम टुकड़ा था। आवेदन पैकेज के भीतर Aquamacs के निष्पादन योग्य (अर्थात, ... Aquamacs.app/Contents/MacOS/Aquamacs) NSSpellChecker के लिए हार्ड-कोडेड जादू Aquamacs साथ संयोजन के रूप में ns-win.el के संस्करण संशोधित होता है; flyspell.el; और ispell.el

संपादित करें 3: इस बिंदु पर, एक ही विकल्प के लिए एक कस्टम अनुप्रयोग का निर्माण करने में Aquamacs और संबंधित निर्माण की प्रक्रिया में इस्तेमाल फ़ाइलों के लिए निर्माण स्क्रिप्ट को संशोधित करने के लिए किया जाएगा। वैकल्पिक रूप से, एक हाइब्रिड बनाना भी संभव है, लेकिन इसकी अपनी समस्याओं के साथ आता है क्योंकि एक्वामाक्स निष्पादन योग्य को one-frame-one-buffer-mode जैसी विशेषताओं के साथ हार्ड-कोड किया गया है जब Finder.app से फ़ाइल खोलते हैं; Finder.app से फ़ाइल खोलते समय switch-to-buffer-in-tab; ns-application-activated जिसे अनदेखा करने के लिए सेट करने की आवश्यकता है; त्रुटि संदेश को ठीक से शांत करने के लिए init.el फ़ाइल के अंदर संस्करण आईडी सहित; विकल्पों को बचाने के लिए एक्वामाक्स की ओर तैयार किए गए आसान मेनू विकल्प; और कुछ अन्य मुद्दे जो आसानी से स्पष्ट हैं। संक्षेप में, एक संकर काम करने योग्य है, लेकिन गर्दन में दर्द होता है। मेरे पास एक हाइब्रिड काम कर रहा है, लेकिन मुझे यकीन है कि मुझे और अधिक tweaking करना होगा क्योंकि मुझे एक्वामाक्स अनुकूलन (निष्पादन योग्य द्वारा बनाया गया) मिलता है जिसे निपटाया जाना चाहिए। किसी भी प्रकार का उत्तर पोस्ट करना मेरे लिए बहुत जल्दी है। बिल्ड स्क्रिप्ट संशोधन सबसे अच्छा समाधान प्रतीत होता है, लेकिन NSSpellChecker सुविधा को अलग करने वाले कस्टम बिल्ड को बनाने के लिए इसे ठीक से संशोधित करने के लिए बहुत समय की आवश्यकता होगी।

संपादित 4: मैं यह है कि Aquamacs24 के एक कस्टम निर्माण के निष्पादन योग्य (छोड़ते हुए वर्तनी-जांचकर्ता को छोड़कर लगभग सब कुछ Aquamacs) NSSpellChecker के साथ एक काम संस्करण, और Emacs-ट्रंक Emacs24 का सबसे हाल का निर्माण (रात का निर्माण) है।मैं एक्वामाक्स 24 की नवीनतम शाखा को गिट के साथ डाउनलोड करने के लिए टर्मिनल का उपयोग करने के लिए कुछ तकनीकी सहायता प्राप्त करने का इंतजार कर रहा हूं क्योंकि मुझे टर्मिनल के साथ ज़िप संस्करण को डुप्लिकेट करने में कुछ समस्याएं हैं। यह बहुत विस्तृत है और मैं उत्तर पोस्ट करने से पहले प्रक्रिया को सरल बनाना चाहता हूं, और मैं इसे पहले से पूरी तरह से जांचना चाहता हूं।

NSSpellChecker http://lawlist.com/images/spellchecker.png

उत्तर

6

पैच (नीचे करने के लिए कहा गया है) Aquamacs के चुनिंदा अंश से @lawlist द्वारा बनाया गया था:

https://github.com/davidswelt/aquamacs-emacs

वेनिला में पर OSX देशी वर्तनी जांच सक्षम करने के लिए की/जेनेरिक वर्जन Emacs, सी-स्रोत-कोड पूर्व निर्माण को पैच करना आवश्यक है, और कुछ lisp फ़ाइलों को भी संशोधित करने की आवश्यकता है। Stackexchange.com पर एक उत्तर में पोस्ट करने के लिए पैच बहुत बड़ा है।

निम्न कार्यविधि मानता आवश्यक उपकरण पहले से ही निर्माण और पैच, आदि के लिए पर OSX स्थापित किया गया है - जैसे, Git, automake और autoconf के हाल के संस्करणों, xcode, आदि


Emacs -25 शाखा - नवंबर 1, वर्ष 2016:

निम्नलिखित पैच और न्यूनतम परीक्षण Emacs -25 शाखाबनाया पर प्रदर्शन किया गया था 663,210 से प्रतिबद्ध नवंबर 1, वर्ष 2016 दिनांक के रूप में: git clone -b emacs-25 git://git.sv.gnu.org/emacs.git

जाएँ: https://gist.github.com/lawlist/dfc75240cc06c66f19f48eaa3e570d7c

"डाउनलोड ज़िप" बटन क्लिक करें, और ज़िप किया गया पैच फ़ाइल कहीं बचाने के एक टर्मिनल, प्रकार से 5043e0a7e06dbf6507a59736e55bdde69d9a2a4e

आपके कंप्युटर पर।

ज़िप संग्रह तुम सिर्फ डाउनलोड किया निकालें और .../emacs जड़ स्रोत-कोड निर्देशिका है कि ऊपर पहला कदम में क्लोन किया गया था करने के लिए nsspellchecker_emacs25.diff सहेजें।

टर्मिनल से cd रूट .../emacs स्रोत-कोड निर्देशिका पर।

;; पैच पुराना हो सकता है, इसलिए इस उदाहरण में 1 नवंबर, 2016 को वापस जाने के लिए एक हार्ड रीसेट शामिल है। [कुछ बग फिक्स अभी भी विकास टीम द्वारा Emacs 25 में किए जा रहे हैं, जो पैच को पुराना हो सकता है।]

एक टर्मिनल, प्रकार से: git reset --hard 5043e0a7e06dbf6507a59736e55bdde69d9a2a4e

;; सफलतापूर्वक रीसेट कर एक मुश्किल प्रदर्शन करने के बाद, टर्मिनल में संदेश कहेंगे: "सिर 'EUDC-विकल्प-फ़ाइल' के लिए 5043e0a फिक्स प्रलेखन में है"

एक टर्मिनल, प्रकार से

: git apply nsspellchecker_emacs25.diff

से एक टर्मिनल, टाइप करें: ./autogen.sh

एक टर्मिनल, प्रकार से: ./configure --with-ns

एक टर्मिनल, प्रकार से: make

टर्मिनल से टाइप करें: make install

;; Finder.app के साथ, .../emacs/nextstep पर नेविगेट करें और अपने नए Emacs.app

;; अपना नया Emacs.app खोलें और M-x eval-expression RET (require 'flyspell) RET

;; *scratch* बफर में, कुछ सही वर्तनी टाइप करें और कुछ गलत वर्तनी है।

;; टाइप करें: M-x ns-start-spellchecker या M-x ispell-buffer

;; पॉप-अप स्पेलचेकर के साथ थोड़ा सा खेलें और मज़े करें।

;; 29 मई, वर्ष 2016 के रूप में master शाखा पर लागू होने वाला ~/Library/Spelling/LocalDictionary


पिछला जवाब:: कस्टम शब्द में सहेजे जाते हैं

निम्नलिखित पैच और न्यूनतम परीक्षण मास्टर शाखा पर प्रदर्शन किया गया था 2 9 मई, 2016: 76fb19b359dec8556dc66dbac3ad3d333feea3c3

टर्मिनल से टाइप करें: git clone -b master git://git.sv.gnu.org/emacs.git

जाएँ: https://gist.github.com/lawlist/6a9b281870fcc114ad3c6c1dca121f95

"डाउनलोड ज़िप" बटन क्लिक करें और अपने कंप्यूटर पर कहीं ज़िपित पैच फ़ाइल सहेजें।

ज़िप संग्रह तुम सिर्फ डाउनलोड किया निकालें और .../emacs जड़ स्रोत-कोड निर्देशिका है कि ऊपर पहला कदम में क्लोन किया गया था करने के लिए nsspellchecker.diff सहेजें।

टर्मिनल से cd रूट .../emacs स्रोत-कोड निर्देशिका पर।

;; पैच जल्द ही पुराना हो जाएगा, इसलिए इस उदाहरण में 2 9 मई, 2016 को वापस जाने के लिए एक हार्ड रीसेट शामिल है। [मैं पैच को अद्यतन/रखरखाव नहीं कर रहा हूं क्योंकि एमाक्स मास्टर शाखा प्रत्येक दिन कई बार बदलती है।]

एक टर्मिनल, प्रकार से: git reset --hard 76fb19b359dec8556dc66dbac3ad3d333feea3c3

;; हार्ड रीसेट सफलतापूर्वक करने के बाद, टर्मिनल में संदेश कहेंगे: "HEAD अब 76fb19b * lisp/wid-edit.el (लिंक) पर है: निकालें: फॉलो-लिंक प्रॉपर्टी (बग # 22434)"

टर्मिनल से टाइप करें: git apply nsspellchecker.diff

+0

क्या यह मुख्यलाइन Emacs के लिए कॉन्फ़िगरेशन विकल्प के रूप में उपलब्ध कराने का कोई प्रयास है? – tripleee

+0

@ ट्रिपली - मुझे यकीन नहीं है कि रिचर्ड एम। स्टालमैन, जॉन विगली या एली ज़ारेत्स्की को ऐसी सुविधा रखने में दिलचस्पी होगी जो ओएसएक्स विशिष्ट है। मेरा अनुमान है कि वे नहीं करेंगे, हालांकि, जॉन ओएसएक्स का उपयोग करता है - इसलिए वह * रुचि रख सकता है। आरएमएस निस्संदेह डेविड स्विल्ट (सी-स्रोत कोड संशोधनों के लिए) और नथनील कनिंघम (ispell.el/flyspell.el), और अन्य, पेपरवर्क पर हस्ताक्षर करने के लिए आग्रह करते हैं कि उनके योगदान Emacs का आधिकारिक हिस्सा बनें, लाइसेंस जीएनयू होने के बावजूद ऐसा करने के लिए तैयार नहीं हो सकता है। इसके अलावा, "एक्वामाक्स" दान स्वीकार करता है। । । – lawlist