nasıl

2015-04-24 20 views
5

Tim Pope göre, aşağıdakileri yapabilirsiniz Görsel modu HTML etiketi ile VIM çevre tekrarlamak:nasıl

Finally, let's try out visual mode. 
Press a capital V (for linewise visual mode) followed by S<p class="important">. 

Ve ben denedim ve çalışıyor bu

<p class="important"> 
    <em>Hello</em> world! 
</p> 

olsun. Fakat bu komutu diğer birçok görsel blokta nasıl tekrar edebilirim? .'u denedim ama çalışmadı.

Güncelleme: Bu metinde ile

:

foo 
foo 
foo 

Bu qqgvS<p class="important">q çalıştı. Bu doğru

<p class="important"> 
foo 
</p> 
foo 
foo 

verir Ama (f ikinci sıranın mektup üzerine imleç) bu @q ile tekrar ne zaman bu verir:

<p> 
<p class="important"> 
foo 
</p> 
</p> 
foo 
foo 

yerine

<p class="important"> 
foo 
</p> 
<p class="important"> 
foo 
</p> 
foo 

nedir Bunu yapmanın doğru yolu?

cevap

3

Yapamazsınız; repeat.vim eklentisi, tekrarlamayı normal moddan gerçekleştirir. Bir arkadaşı visualrepeat plugin yazdım, ancak surround.vim bunu desteklemiyor.

Yerleşik komutlar için, gv:normal .<CR> aracılığıyla görsel bir seçim yapabilirdiniz, ancak bu burada çalışmıyor.

Gördüğüm tek seçenek, bir makroyu kaydetmek ve daha sonra her bir önceki seçimde (gv kullanarak) yürütmektir. Bir alternatif olarak

:'<,'>norm! yss<p> 

, bir makro kaydedebilir ve geri her satırda o oynayabilir:

+0

Bunu makro ile nasıl yapıyorsunuz? – pdubois

+2

Temel olarak, 'qqgvS

q'. Ardından, hattı (ları) seçin ve ' @ q' ile tetikleyin. –

+0

Teşekkürler. Ama bu işe yaramıyor. Güncellemeye bakın. – pdubois

3

Genellikle böyle bir şeyle bunu.