CTRL-U kombinasyonunu anlama


20

Gelen bu cevap ben karşılaştığı CTRL-Usonra işlev çağrısında kullanılan :ve gerçek fonksiyon adından önce.

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

Yardımın söyledikleri:

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].

Kendim denedim ve beklediğim gibi çalıştı. Ama scrollseçenek hakkındaki kısmı tam olarak anlamadım . Ne demek istiyorlar 'scroll' option?

Ayrıca, ekleme modunda garip bir şey yapar. Anladığım kadarıyla, imleçten satırın başına kadar olan her şeyi siler ve sonra ortaya çıkan çizgiye ve yukarıdaki çizgiye katılır.

Yanıtlar:


28

Yardım, varsayılan olarak, normal moda uygulanan eşlemeleri döndürür. Normal modda, <C-u> does kaydırma yukarı, ama bu ediyoruz ilgilenen içinde. Görmek için bu değildi <C-u>komut satırı modunda ya yaptığı cmode , arama (eğer komutları bir kolon ile başlayan yazın modu):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>

Bunun normal mod eşlemesi için neden yararlı olduğunu anlamak için, kaldırmayı deneyin 5:, benzer bir şey yazmayı deneyin ve ne olduğunu görün. Şuna benzer bir şey görmelisiniz:

:.,.+4

Bu bir aralık

Şimdi yazmayı deneyin 5:<C-u>ve ne olduğunu görün. Sadece görmelisin

:

Görsel modda benzer şekilde, tuşuna basmak :aralığı ekler

:'<,'>

Bu yüzden aşağıdaki gibi eşlemeleri çok sık göreceksiniz:

nnoremap foo :<C-u>bar

veya

xnoremap foo :<C-u>bar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.