2011-12-19 19 views
6

Görsel seçim konusunda bir sorun yaşıyorum ve normal bir ifade değişimini çalıştırıyorum. Ben tüm satır içerir ve isabet etmez bazı metin seçtiğinizde: değiştiğinde (seçilmemiş veya almış olsun) on line SonraVim görsel seçimi ve regexp

:s/T/t/ 

ilk maçı gibi bir şey komut satırı yukarı getirmek, ve yapılacak . Yani, örneğin, ben metni

Test Text here 

var ve görsel ardından, kelime Metin seçmek yukarıdaki ikame çalıştırmak, ben istediğimi olmadığı

test Text here 

ile bitirmek.

Doğru sonuca nasıl ulaşılacağı hakkında herhangi bir fikrin var mı?

Düzenleme: Görsel bir seçim ile: Gerçek komut satırı bastığınızda Vim tarafından varsayılan olarak

'<,'>s/T/t/ 

olduğunu.

cevap

10

Sen \% V kullanabilirsiniz Yani

\%V Match inside the Visual area. When Visual mode has already been 
    stopped match in the area that |gv| would reselect. 
    This is a |/zero-width| match. To make sure the whole pattern is 
    inside the Visual area put it at the start and end of the pattern, 
    e.g.: 
     /\%Vfoo.*bar\%V 
    Only works for the current buffer. 

(http://vimdoc.sourceforge.net/htmldoc/pattern.html#//%V bakınız): Eğer g/eklemek

:s/\%VT/t/g 
birden fazla isabet değiştirmek istiyorsanız

:s/\%VT/t/ 

+1

'a göre: h% V', tüm s Desenin seçimin içinde olduğundan emin olmak istiyorsanız '\% V' içinde earch pattern. Gibi: ': s/\% Vlongpattern \% V/kısa /'. – m0tive

+0

@ m0tive: Belgelerin üzerinde alıntı yaptım. Ve desen – sehe

+0

kullanışlı değil tek karakter gibi olduğunda, benim için sadece çok hızlı ;-) – m0tive