CTRL-U संयोजन को समझना


20

में इस सवाल का जवाब मैं का सामना करना पड़ा CTRL-Uके बाद समारोह कॉल में उपयोग किए :और इससे पहले कि वास्तविक समारोह नाम।

:nnoremap <buffer> <cr> :<C-U>call append('.', repeat([''],v:count1))<cr>

यहाँ मदद क्या कहते हैं:

CTRL-U      Scroll window Upwards in the buffer.  The number of
            lines comes from the scroll option (default: half a
            screen).  If [count] given, first set the 'scroll'
            option to [count].

मैंने इसे स्वयं आजमाया और जैसा मैंने चाहा यह काम किया। लेकिन मुझे scrollविकल्प के बारे में कुछ समझ नहीं आया । उनका क्या मतलब है 'scroll' option?

और इसके अलावा यह आवेषण मोड में कुछ अजीब बात करता है। जहां तक ​​मैंने समझा कि यह कर्सर की शुरुआत से लेकर लाइन की शुरुआत तक सब कुछ डिलीट कर देता है और फिर परिणामी लाइन और ऊपर की लाइन को जोड़ देता है।

जवाबों:


28

सामान्य रूप से लागू होने वाली किसी भी मैपिंग को डिफ़ॉल्ट रूप से मदद करता है। सामान्य मोड में, ऊपर की ओर स्क्रॉल <C-u> करता है, लेकिन यह वह नहीं है जिसमें हम रुचि रखते हैं। यह देखने के लिए कि <C-u>कमांड लाइन मोड, या cmode में क्या होता है , (वह मोड जहां आप कमांड को कोलोन से शुरू करते हैं) खोज:h c_CTRL-u

                            *c_CTRL-U*
CTRL-U      Remove all characters between the cursor position and
        the beginning of the line.  Previous versions of vim
        deleted all characters on the line.  If that is the
        preferred behavior, add the following to your .vimrc: >
            :cnoremap <C-U> <C-E><C-U>

यह समझने के लिए कि यह सामान्य मोड मैपिंग के लिए क्यों उपयोगी है, इसे हटाने का प्रयास करें, कुछ टाइप करने का प्रयास करें 5:, और देखें कि क्या आता है। आपको कुछ इस तरह देखना चाहिए:

:.,.+4

यह एक सीमा है

अब टाइप करने की कोशिश करें 5:<C-u>और देखें कि क्या आता है। आपको बस देखना चाहिए

:

इसी तरह विजुअल मोड में, प्रेस :रेंज को सम्मिलित करता है

:'<,'>

यही कारण है कि आप बहुत बार मैपिंग देखेंगे जैसे:

nnoremap foo :<C-u>bar

या

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