2010-08-24 9 views
7

मुझे कई कैमेलकेज्ड शब्दों वाले एक बड़े दस्तावेज़ की जांच करने की आवश्यकता है। मैं यह जांचने के लिए ispell या aspell चाहता हूं कि व्यक्तिगत शब्द सही वर्तनी में हैं या नहीं।वर्तनी कैमेलकेज्ड शब्दों की वर्तनी के लिए ispell/aspell का उपयोग करना

तो, यह शब्द के मामले में:

ScientificProgrezGoesBoink

मैं इसे बजाय इस सुझाव है कि करने के लिए प्यार होता है:

ScientificProgressGoesBoink

वहाँ है इसे करने का कोई तरीका? (और मेरा मतलब है, इसे एक Emacs बफर पर चलाते समय।) ध्यान दें कि मैं जरूरी नहीं कि यह पूरा विकल्प सुझाए। हालांकि, अगर यह समझता है कि प्रोग्रेस को पहचाना नहीं गया है, तो मुझे कम से कम उस हिस्से को प्रतिस्थापित करने में सक्षम होना पसंद है, या उस शब्द को मेरे निजी शब्दकोश में जोड़ना पसंद है, बल्कि प्रत्येक ऊंट-शब्द वाले शब्द को शब्दकोश में शामिल करने के बजाय।

+0

मुझे यकीन है कि कुछ सीसी-मोड ऊंट केस शब्द से आगे बढ़ने में संभाल सकता है - इसलिए अवधारणात्मक रूप से, मुझे लगता है कि यह संभव है। मुझे बिल्कुल नहीं पता कि कैसे। – cristobalito

+1

यह सामान्य समाधान होना अच्छा लगेगा। Aspell रन-एक साथ शब्दों की जांच की अनुमति देता है, लेकिन यह बहुत उदार है। –

उत्तर

0

आपको ऊंट के शब्दों को पार्स करना चाहिए और उन्हें विभाजित करना चाहिए, फिर प्रत्येक के लिए अलग-अलग वर्तनी जांचें और प्रत्येक गलत वर्तनी टोकन के लिए एकल सुझाव को ध्यान में रखते हुए एक सुझाव इकट्ठा करें। यह ध्यान में रखते हुए कि प्रत्येक गलत वर्तनी टोकन में कई सुझाव हो सकते हैं, यह मेरे लिए थोड़ा अक्षम है।

+1

मैं कुछ आसान करने की उम्मीद कर रहा था, शायद संभवतः उपशब्द मोड या कुछ आईएसपीएल-मोड कॉन्फ़िगरेशन विकल्पों पर निर्भर था। Aspell फिल्टर है, लेकिन AFAICT, अपने आप को निर्दिष्ट करने का कोई तरीका नहीं है। –

+1

एफडब्ल्यूआईडब्ल्यू, चश्मा-मोड कुछ समान पार्सिंग करता है। – phils

3

मैंने @phils सुझाव लिया और थोड़ा गहराई से खोद दिया। ऐसा लगता है कि अगर आप camelCase-mode हो और इस तरह ispell में से कुछ को पुन: कॉन्फ़िगर:

(defun ispell-get-word (following) 
    (when following 
    (camelCase-forward-word 1)) 
    (let* ((start (progn (camelCase-backward-word 1) 
         (point))) 
     (end (progn (camelCase-forward-word 1) 
        (point)))) 
    (list (buffer-substring-no-properties start end) 
      start end))) 

तो, उस स्थिति में, अलग-अलग ऊंट शब्द मामलों suchAsThisOne वास्तव में हो सकता है सही ढंग से वर्तनी-जाँच की जाएगी। (जब तक कि आप किसी दस्तावेज़ की शुरुआत में नहीं हैं - मुझे अभी पता चला है।)

तो यह स्पष्ट रूप से पूर्ण समाधान नहीं है, लेकिन कम से कम यह कुछ है।

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