2012-05-30 20 views
7

Kodu özel bir şekilde yorumlamak için bir eklenti yazıyorum ve görsel veya normal modda çağrıldığında biraz farklı davranmalıyım.Vim: Şu anda bulunduğum modun nasıl alınacağı

İşlev çağrıldığında kullanıcının (modun) olduğu modu belirlemek için bir işlev veya bir yol var mı?

cevap

6

([ifade]) geçerli modu belirten bir dize döndürür

modu var.

http://vimdoc.sourceforge.net/htmldoc/eval.html#mode%28%29

ama muhtemelen haritalama rhs'sine komut modunu başlatmak için gidiyoruz çünkü o çalışmayabilir.

daha sağlam yolu

nmap <Leader>c :call MyFunc('n')<CR> 
vmap <Leader>c :call MyFunc('v')<CR> 

gibi biraz farklı eşlemeler kurmak ve kullanıcı ne olduğunu modu bilmek argüman değeri kullanmak olacaktır. Sen kullanmalıdır

+4

'nnoremap' /' vnoremap Burada daha istikrarlıdırlar (yani son kullanıcının haritalamayı kazayla kırması için çok daha az yol vardır) ve böylece bir eklenti için tek seçenek vardır. – ZyX

İlgili konular