Ekleme modunda Vim eşleme karakterleri


0

Tamam, bu oldukça basit bir soru olabilir, ancak özel anahtar eşlemelerinin nasıl yapıldığını öğrendim.

"Sınıf" yazarken vim otomatik olarak "son" iki satır daha düşük yapmaya çalışıyorum bu yüzden şunu yazdım .vimrc :

:imap class class<CR><CR>end

Bu yüzden, "class" vim yazmaya başladığımda şimdi, "class" harflerinin her birini yazmaya bitene kadar ya da ne yazdığımı artık "class" ile eşleşmeyene kadar bitti.

Bu davranıştan kaçınmanın bir yolu var mı, bir haritalanmış tuş dizilimi ile eşleşse bile yazarken neyi yazdığımı görmek istiyorum?

Doğru şekilde açıklıyor muyum, emin değilim.

Yardım için teşekkürler

Yanıtlar:


1

Arıyorsun

:inoreab class class<cr><cr>end

Aynısı ( nore ) eşlemelerle de çalışmış olacaktı, ancak eşlemeler bu tür snippet'lere daha az uyuyordu.

BTW, kısaltma, kullanacağınız dosya türüne özel olarak bildirilmelidir (Ruby?) - & gt;

" in ~/.vim/ftplugin/ruby/my_snippets.vim
:inoreab <buffer> class class<cr><cr>end

Unutmayın, bir dize içinden "class" yazamayacağınızı ve genişlettiğini görmeden yorum yapamayacağınızı unutmayın. Ya güvenmek zorundasın Bağlamla ilgilenecek işlevler veya parçacıklar (bakımı çok daha kolay olacaktır)

Örneğin, lh-braketi ile şunları tanımlayabilirsiniz:

:Inoreab <buffer> class <c-r>=InsertSeq('class', 'class !cursorhere!\<cr\>!mark!\<cr\>end!mark!')<cr>

Ama bunun yerine pasajlı bir motor kullanmanızı gerçekten tavsiye ederim (mu-template, utilsnip, snipmate, ... Bol)


Doğru bilgisayardan infront değilim ama bir kez olacağım, bahsettiğiniz eklentilere bir göz atacağım. Onları daha önce hiç duymadığımı biliyorum, aklıma hiç gelmedi, sorunumun çözümü olacaklardı.
sgp667

SnipMate temelde bu ve benim için daha fazla sorun çözer. Teşekkürler
sgp667
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.