वर्तनी की गलतियों को स्वतः सुधारें


19

मैंने वर्तनी जाँच चालू कर दी है

:set spell spelllang=en_us

मैं अब टाइप करके किसी शब्द की स्पेलिंग को सही कर सकता हूं 1z=(अर्थात, 1स्टेलिंग करेक्शन को सुधारें ( z=))।

जब भी मैं बिना किसी देरी के, किसी भी स्थान पर टाइप करता हूं, तो मैं इसे स्वचालित रूप से पिछले शब्द पर कैसे चला सकता हूं? यह उन शब्दों को "ठीक" करने का भी प्रयास करता है जो पहले से ही सही ढंग से लिखे गए हैं (यही वजह है कि मैं ऐसा कुछ नहीं कर सकता inoremap <space> <esc>mmb1z=`ma<space>), इसलिए मैं केवल हर शब्द को सही करना चाहता हूं यदि यह गलत वर्तनी है

क्या विम में गलत वर्तनी वाले शब्दों को स्वचालित करने का कोई तरीका है?



1
@ArturoVolpe सवाल का एक वैध जवाब की तरह लगता है।
bsmith89

क्या आप रीमैप में पिछली त्रुटि '[s' को जोड़ सकते हैं? मैं एक उत्तर के रूप में जोड़ूंगा, लेकिन यह नहीं जानता कि रीमैप कैसे किया जाए ताकि मैं किसी और के लिए छोड़ दूं।
निक जे एडम्स

जवाबों:


8

मैं दो कारणों से, गलत रूप से चिह्नित प्रत्येक शब्द को स्वचालित रूप से ठीक करने के खिलाफ सिफारिश करूंगा।

  • सबसे पहले, आपको टाइप करने के लिए बहुत सी झूठी सकारात्मक चीजें मिलेंगी, जो कि विशेष रूप से अधिक तकनीकी लेखन में आपके लिए आवश्यक हैं। आप निश्चित रूप से (और शायद चाहिए) इन दोनों को अपने शब्दकोश में जोड़ें ताकि वे पहचाने और सुझाए जाएं। हालाँकि, यदि आप ध्यान नहीं देते हैं कि वे स्वत: ठीक हो गए हैं, तो वे किसी दस्तावेज़ के अंतिम संस्करण के माध्यम से फिसल सकते हैं - या इससे भी बदतर, यदि आप कोड या एक कॉन्फ़िगरेशन फ़ाइल लिख रहे हैं (जैसे, ग्राफ़ को पूरी तरह से देखने के xminलिए बदलना minगलत)। टिप्पणियां अजीब भी हो सकती हैं (उदाहरण के लिए, मेरे पास "लेबल और शून्य निर्देश" "लेबल और अशक्त निर्देश" में बदल गया है, जो संज्ञा वाक्यांश से अर्थ (ए) को एक अनिवार्यता में बदल देता है, और (बी) कुछ पूरी तरह से अलग करने के लिए। )
  • दूसरा, छोटे शब्दों पर स्वतः पूर्ण बहुत खराब है। मेरे अनुभव में, यह निकटतम शब्द को पूरा करने के लिए जाता है, जो, उदाहरण के लिए, तीन-अक्षर के शब्द, जो कि इसका मतलब है, से पूरी तरह से अलग हो सकता है। आप टाइप करने के लिए इसका मतलब यह तो की , लेकिन गलती से टाइप के लिए , यह करने के लिए सुधार दिया जाएगा कुछ -not तुम क्या चाहते थे! फिर से, इन्हें सरसरी संशोधनों में पकड़ना मुश्किल हो सकता है।

इसे ध्यान में रखते हुए, मुझे लगता है कि आपका वास्तविक लक्ष्य टाइपोग्राफिक त्रुटियों को जल्दी से पहचानने और उन्हें ठीक करने में सक्षम होना है।

इसे पूरा करने के लिए मैं निम्नलिखित मैपिंग का उपयोग करता हूं:

" Go back to last misspelled word and pick first suggestion.
inoremap <C-L> <C-G>u<Esc>[s1z=`]a<C-G>u

" Select last misspelled word (typing will edit).
nnoremap <C-K> <Esc>[sve<C-G>
inoremap <C-K> <Esc>[sve<C-G>
snoremap <C-K> <Esc>b[sviw<C-G>

जब मैं बॉडी टेक्स्ट टाइप कर रहा हूं, तो मेरी हाइलाइटिंग सेटिंग्स के अनुसार कोई भी गलत वर्तनी वाले शब्द रेखांकित किए जाएंगे। अगर मैं देखता हूं कि यह शब्द अपेक्षाकृत लंबा है और यह एक सरल टाइपो है, तो मैं समझ सकता हूं कि spellशायद इसे सही ढंग से ठीक कर दिया जाएगा, इसलिए मैं हिट करता हूं <C-L>और बस टाइप करता रहता हूं । यदि यह एक छोटा शब्द है या मुझे अनुमान है कि यह गलत हो जाएगा, तो मैं <C-K>इसे स्वयं दबा सकता हूं और समायोजित कर सकता हूं। अंत में, अगर spellअनपेक्षित रूप से गलत चीज के लिए सही हो जाता है <C-G>u, तो मैंने एक पूर्ववत मार्कर के साथ सेट किया है , इसलिए मैं <Esc>ucWइसे मैन्युअल रूप से बदल सकता हूं यह अधिकांश समय बहुत तेज वर्कफ़्लो के लिए बनाता है।


प्रत्येक शब्द को स्वचालित रूप से ठीक करना एक उत्कृष्ट विचार है
रिच

2

संयोग से, मैंने एक प्लगइन लिखा है जो ठीक यही करता है। इसे वीम यू, ऑटोकार्ट कहा जाता है !

स्थापित करने के बाद, :EnableAutocorrectइसे किसी भी बफ़र में स्विच करने के लिए टाइप करें, और आप जल्द ही देखेंगे कि व्हर्चिन की डराने वाली चीज़ काफी निराधार है।


कृपया ध्यान दें कि वार्कगिन के उत्तर पर आपकी टिप्पणी असभ्य हो गई, मैंने इसे "पॉपीसाइकॉक" को हटाने के लिए संपादित किया! और झंडे को खारिज कर दिया। कोई बड़ी बात नहीं, सिर्फ FYI करें।
मार्टिन टूरनोइज

@MartinTournoij यह ठीक है। रेडिट पर बहुत से लोगों को मजाक भी नहीं मिला । :) (सिर के लिए धन्यवाद, हालांकि।)
अमीर

mr रिच जो पैकेज मैं स्थापित और टाइप करना चाहता हूं: EnableAutoCorrect i didnt समझे नहीं
MP Creations

क्या आप एक प्लगइन प्रबंधक का उपयोग करते हैं?
रिच

@MPCreations शायद के जवाब पर एक नज़र डालें vi.stackexchange.com/questions/613/... यदि आप एक प्लगइन स्थापित करने के लिए कैसे पता नहीं है
रिच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.