विम हार्डमोड फाइन ग्रेन मूवमेंट्स


11

मुझे हाल ही में विम हार्ड मोड के बारे में पता चला है और मैंने इसे इस्तेमाल करने की कोशिश करने का फैसला किया है। हालांकि, मैं ठीक अनाज आंदोलनों के साथ कुछ समस्याओं में भाग रहा हूं।

उदाहरण के लिए, मान लें कि मैं वास्तव में एक पंक्ति को ऊपर या नीचे ले जाना चाहता हूं। चूंकि jऔर kअक्षम हैं, मुझे यकीन नहीं है कि इसके लिए बेहतर विकल्प क्या हैं।

जब मैं एक या दो वर्णों को दाएं या बाएं स्थानांतरित करना चाहता हूं तो मैं उसी समस्या में चला गया हूं। क्या किसी को पता है कि कोई इस तरह के आंदोलनों की जगह कैसे लेगा?

यह वह प्लगइन है जिसका मैं उपयोग कर रहा हूं: https://github.com/wikitopian/hardmode


क्या एक बेवकूफ प्लगइन! जो भी काम करें उसका उपयोग करें।
रोमेल

मैं वास्तव में रोमेल के साथ सहमत हूं: यह सीखना अच्छा है कि किसी फ़ाइल में कुशलता से कैसे नेविगेट किया जाए लेकिन अपने आप को इस तरह के प्लगइन को थोपना एक आवश्यक दर्द नहीं है। फिर भी तुम मेरे जवाब में रुचि रखने वाले यहां के बारे में (अधिक सटीक हिस्सा /और ?
statox

1
मैं यहां प्रतिमा और रोमन से असहमत होना चाहूंगा। जिन लक्ष्यों को आप बदलना चाहते हैं, उन पर सीधे नेविगेट करने से आपकी समग्र दक्षता में काफी सुधार हो सकता है। जबकि हाँ यह आपको पहले धीमा कर सकता है, लंबे समय में आप बेहतर नौवहन का उपयोग करके खोए हुए समय के लिए करेंगे।
Archangel33

वास्तव में @ Archangel33 मुझे लगता है कि हम इस तथ्य के बारे में एक ही राय साझा करते हैं कि अन्य तरीकों की तुलना hjklमें अधिक सटीक रूप से नेविगेट करना एक अच्छी बात है। जो मैं अस्वीकृति दे रहा था वह स्वयं प्लगइन था: मेरी राय में, एक बार में नेविगेट करने के नए तरीके सीखना बेहतर है (आप एक ही समय में उन सभी को नहीं सीख सकते हैं) और सीखने के दौरान प्लगइन्स का उपयोग करके जो आपको निराश नहीं करता है ज़रूरी। यही कारण है कि किया जा रहा है ने कहा कि यह केवल मेरी राय है: एक अधिकार है सहमत नहीं :-)
statox

1
@ एलेक्स वास्तव में मेरी टिप्पणी केवल मेरी व्यक्तिगत राय थी, मैं यह कभी नहीं मानूंगा कि मेरे पास एकमात्र और सार्वभौमिक समाधान है यही कारण है कि मेरा अंतिम वाक्य था That being said it is only my opinion: one has right to disagree। अब, बहस संभावित रूप से अंतहीन है: बेशक कुछ लोगों को इस तरह के प्लगइन का लाभ मिलेगा, जबकि यह केवल कुछ अन्य को निराश करेगा और उनकी शिक्षा को नुकसान पहुंचाएगा। मैं खुशी एक चैट में आप के साथ चर्चा करेंगे, लेकिन हम बहस का :-) इस तरह से सवाल की टिप्पणी स्पैम नहीं करना चाहिए आप इस बारे में बात करना चाहते हैं तो
statox

जवाबों:


17

ये केवल कुछ आंदोलन हैं जो विम करने में सक्षम हैं, ये आपको अभी के लिए जाने चाहिए।

टी एल; डॉ

  1. पर navigationया बेहतर अभी भी मदद सुविधा में निर्मित विम का उपयोग करेंusr_03.txt
  2. के लिए Google खोजें vim advanced movements
  3. / शब्दों के साथ नेविगेट करें
  4. यहाँ जाओ सब ठीक चलता है

आंदोलनों

चारों ओर होने के कई तरीके हैं जो मैंने सूचीबद्ध किए हैं, जिन्हें मैंने खोज कर पाया है vim advanced movements, और कुछ जिन्हें मैं हर समय उपयोग करता हूं। मुझे यकीन है कि आप इनमें से अधिकांश के बारे में जानते हैं, लेकिन मुझे लगता है कि आप विशेष रूप से ध्यान देना चाहेंगे, शब्द नेविगेशन के हैं।

यहाँ कुछ हैं जो एक लाइन के अंदर नेविगेशन के लिए अनुमति देते हैं।

  • 0 - करंट लाइन की शुरुआत में जाएं।
  • ^ - लाइन के पहले नॉन ब्लैंक कैरेक्टर पर जाएं।
  • $ - वर्तमान लाइन के अंत में जाएं।
  • g_ - लाइन के अंतिम गैर रिक्त वर्ण पर जाएं।

शब्दों के साथ नेविगेशन बहुत मददगार हो सकता है। अधिक दानेदार होने के लिए, आपको शब्दों का उपयोग करते हुए नेविगेट करना चाहिए:

  • e - वर्तमान शब्द के अंत में जाएं।
  • E - वर्तमान WORD के अंत में जाएं।
  • b - पिछले (पहले) शब्द पर जाएं।
  • B - पहले (पहले) WORD पर जाएं।
  • w - अगले शब्द पर जाएं।
  • W - अगले WORD पर जाएं।

एक शब्द में अक्षरों, अंकों और अंडरस्कोर के अनुक्रम होते हैं। एक शब्द में सफेद स्थान के साथ अलग किए गए गैर-रिक्त वर्णों का एक क्रम होता है। शब्द | आपके vim सेटिंग के आधार पर WORDS भी बदल सकते हैं।

WORD और शब्द के बीच अंतर दिखाने के लिए उदाहरण

192.168.1.1 एकल शब्द है।

192.168.1.1 सात शब्द है।

खोज आंदोलन बेहद उपयोगी भी हो सकते हैं।

  • /pattern - एक पैटर्न की खोज करें जो आपको अगली घटना के लिए ले जाएगा pattern
    • nआपको patternकर्सर के नीचे के अगले मैच में ले जाएगा ।
  • ?pattern- एक पैटर्न की खोज करें जो आपको पिछली घटना के लिए ले जाएगा pattern
    • Nआपको patternकर्सर के ऊपर के अगले मैच में ले जाएगा।
  • * - कर्सर के नीचे वर्तमान शब्द की अगली घटना पर जाएं।
  • # - कर्सर के नीचे वर्तमान शब्द की पिछली घटना पर जाएं।
  • % - कोड के अंदर मैचिंग ब्रेसेस, या कोष्ठक पर जाएं।

यहां कुछ हैं जिन्हें आप विम खोलने से पहले भी कर सकते हैं, कमांड लाइन Vim +N filenameसे आप इसे खोलने के बाद फाइल की एनटी लाइन पर जा सकते हैं।

vim +10 /etc/passwd

Vim +/pattern filenameकी घटना के साथ पहली पंक्ति के लिए फ़ाइल खोलता है pattern। निम्नलिखित उदाहरण में, vim README फ़ाइल को खोलेगा और "इंस्टॉल" शब्द की पहली घटना पर कूद जाएगा।

vim +/install README

Vim +?patten filenameकी अंतिम घटना के लिए फ़ाइल खोलता है pattern। निम्नलिखित उदाहरण में, यह README फाइल को खोलेगा और "बग" शब्द की अंतिम घटना पर कूद जाएगा।

vim +?bug README


8

Hardmode के लिए एक विकल्प के रूप में, निम्नलिखित स्निपेट आप का उपयोग करने की अनुमति देगा h, j, k, और lसामान्य रूप में लेकिन जब वे तेजी से उत्तराधिकार में उपयोग किया जाता चेतावनी देने के लिए एक श्रव्य बीप पैदा करते हैं।

function! s:BeepOnRepeat(key)
    let count1 = v:count1

    if !exists('s:last_time')
        let s:last_time    = reltime()
        let s:repeat_count = 1
    else
        " increment the repeat count if `h`, `j`, `k`, or `l` was pressed
        " within the last second, otherwise reset it
        let now = reltime()
        if str2float(reltimestr(reltime(s:last_time, now))) < 1
            let s:repeat_count += 1
        else
            let s:repeat_count = 1
        endif
        let s:last_time = now

        " produce an audible beep if a sequence of `h`, `j`, `k`, and/or `l`,
        " greater than three, was pressed (within the repeat count time limit)
        if s:repeat_count > 3
            let savebelloff    = &belloff
            let savevisualbell = &visualbell
            let &belloff    = ''
            let &visualbell = 0
            execute "normal! \<Esc>"
            let &belloff    = savebelloff
            let &visualbell = savevisualbell
        endif
    endif

    execute 'normal! ' . count1 . a:key
endfunction

nnoremap <silent> h :<C-u>call <SID>BeepOnRepeat('h')<CR>
nnoremap <silent> j :<C-u>call <SID>BeepOnRepeat('j')<CR>
nnoremap <silent> k :<C-u>call <SID>BeepOnRepeat('k')<CR>
nnoremap <silent> l :<C-u>call <SID>BeepOnRepeat('l')<CR>

hjklउपयोग को सीमित करने के लिए एक और दृष्टिकोण के लिए , विम-मोलास देखें ।


3

वैकल्पिक रूप से मध्यम मोड का उपयोग करें जो अभी भी आपको "सही चाल" सीखने की कोशिश करता है, लेकिन ऐसा करने में कम सख्त है:

मध्यम मोड एक विम प्लगइन है जो चरित्र-वार गतियों को सीमित करता है, लेकिन उन्हें पूरी तरह से अक्षम नहीं करता है। डिफ़ॉल्ट रूप से, मध्यम मोड केवल दो लगातार चरित्र-वार गति की अनुमति देगा।


1

मेरे पास यही मुद्दा था तो मैंने :help hardmodeलो टाइप किया और पाया कि मैं देख रहा हूं

'g:HardMode_level' If set to 'wannabe' 
arrow keys disabled, but not   hjkl etc.                                                                                              

वैसे मैं विम शुरुआती में से एक हूं जिसने इस प्लगइन को बेहद उपयोगी पाया क्योंकि यह वास्तव में मुझे माउस से दूर धकेल दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.