जब मैं किसी शब्द को मिस करता हूं तो मुझे टर्मिनल घंटी कैसे लग सकती है?


17

मैं प्रतिलेखन की एक उचित मात्रा में करता हूं जिसमें मैं स्क्रीन को देखे बिना 100+ wpm पर टाइप करता हूं। मुझे लगता है कि यह उपयोगी होगा यदि विम मुझे किसी प्रकार का श्रव्य क्यू दे सकता है यदि वर्तनी-परीक्षक ने अंतिम शब्द को चिह्नित किया है (संभवतः यह दर्शाता है कि मैंने एक टाइपो बनाया है और जो मैंने लिखा था उसे दोबारा जांचना चाहिए)।

स्पेल-चेकर निश्चित रूप से सिंटैक्स-हाइलाइट शब्द है जो कि स्पेसबार से टकराते ही गलत हो जाते हैं। यह कैसे काम करता है? क्या एक ही समय में कुछ प्रकार की कमांड चलाने का एक तरीका है?

मैं हमेशा टर्मिनल में विम का उपयोग करता हूं; मेरे पास अभी टर्मिनल की घंटी की आवाज़ नहीं है, लेकिन अगर ऐसा करने का सबसे आसान तरीका है, तो शायद मुझे वह काम मिल सकता है।


अपने आप से अलग प्रश्न, क्या आप वास्तव में एक शब्द को ठीक करने के लिए अपनी टाइपिंग बाधित करना चाहते हैं? यदि आप पहले लेखन को पूरा करते हैं, तो क्या आप तेज नहीं होंगे, फिर त्रुटियों के माध्यम से जाएंगे, उदाहरण के लिए "अगले मिसाइल शब्द के लिए कूद" कमांड के साथ?
शाहबाज़

मेरी प्रेरणा इस तरह से अधिक होती है: जिस तरह से मैं आमतौर पर टाइप करता हूं, मैं बता सकता हूं कि मैंने स्पष्ट रूप से किसी शब्द को सही ढंग से टाइप किया है, लेकिन कभी-कभी मैं एक शब्द टाइप करता हूं और जानता हूं कि मैंने इसे थोड़ा सा fumbled किया, लेकिन अभी भी एक मौका है जो मुझे मिला है यह सही। यदि यह बीप नहीं करता है, तो मुझे पता है कि मुझे यह सही लगा और मैं इसके बारे में चिंता किए बिना जा सकता हूं; अन्यथा, मैं ^ इसे खत्म कर देता हूं और फिर से कोशिश करता हूं। यह एक पूरी तरह से उचित सवाल है, हालांकि - यह शायद कुछ अलग दृष्टिकोणों को देखने और क्या होता है देखने के समय के लायक है।
सोरेन ब्योर्नस्टैड

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

जवाबों:


15

अंतिम गलत वर्तनी वाला शब्द सीधे सुलभ नहीं है, न ही हाइलाइटिंग को क्वेर किया जा सकता है। आपको अपने आप को कर्सर से पहले शब्द को पुनः प्राप्त करना होगा, और उस एक को अलग से वर्तनी-जांच करना होगा। सौभाग्य से, वहाँ इस तरह के spellbadword()समारोह है। निम्नलिखित प्रत्येक सम्मिलित कुंजी पर एक ट्रिगर सेट करता है जो अंतिम शब्द की जांच करता है:

autocmd CursorMovedI * if &spell && spellbadword(matchstr(strpart(getline('.'), 0, col('.') - 1), '\S\+\s$') )[1] ==# 'bad' | execute "normal! \<C-\>\<C-n>\<Esc>" | endif

बीपिंग (के माध्यम से :normal! <Esc>) के बजाय , आप एक बाहरी उपकरण भी लागू कर सकते हैं system()जो एक संक्षिप्त ध्वनि बजाता है। यह भी <Esc>कर्सर चाल को रोकने के साथ समस्याओं से बचना होगा , जो मैंने देखा है कभी-कभी होता है।


यह पूर्ण है! यह स्पेसबार (जब एक शब्द के बाद) दबाने पर बहुत मामूली देरी जोड़ता है, लेकिन यह एक बड़ा सौदा होने के लिए पर्याप्त नहीं है, और निश्चित रूप से यह केवल तब होता है जब वर्तनी-जांच सक्षम होती है। बीप के लिए, मैंने एक स्क्रिप्ट बनाई जो चलती है mplayer -really-quiet $SOUNDFILE >/dev/null 2>&1 &और उस एक्शन के रूप में डालती है।
सोरेन ब्योर्नस्टैड

1
धन्यवाद! आप if &spell && spellbadword(...)शब्द स्पद्र्धा को निष्क्रिय करने के लिए अतिरिक्त जोड़ सकते हैं यदि केस की जाँच बंद है।
इंगो करकट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.