2011-11-16 12 views
16

sonuna kadar silerek, metnin bu bloğu değiştirmek için böyle devamVim:/değişen parantez veya tırnak smıılandırılmıştır metin bloğunu olduğunda bir "blok"

ci" 
da(

kullanabilirsiniz. Ancak, imleci bu bloğun sonuna kadar değiştirmenin veya silmenin bir yolu var mı (cw'un kelimeler için yaptığı gibi)?

+0

Metnin "engellemesi" ile paragrafı kastediyor musunuz? –

+0

Hayır, alıntılar, parantezler, parantezler, kaşlı ayraçlar vb. Ile sınırlandırılmış bir şey kastediyorum. Genelde neyin çağrıldığını bilmiyorum. –

cevap

13

Benoit'ın cevabı bildiğim en iyi yoludur. Parantezlenmiş bir bloğun sonuna silindiğinde, ])'u kullanabilirsiniz. Bu herhangi bir yuvalanmış parantezi dikkate alacaktır. Ayrıca bir [(, ]} ve [{ bulunmaktadır.

+0

Bu hareketler nasıl adlandırılır? Vim el kitabında bunları okumak isterim. –

+2

Korkarım ki okumak için çok fazla bir şey yok ama onları şu şekilde bulabilirsiniz: yardım [('. –

+0

Teşekkür!' D]} 'tam olarak aradığım şeyi yapıyor (imlecin sonuna bloğun sonuna kadar sil.) – vrmc

5

Vim yardımının "Text object selection" bölümüne bakın. Silme ve değiştirme işlemleri ile seçim dizilerini burada tanımlayabilirsiniz.

  • {}
  • Örneğin
  • ()
  • Tırnaklar (' or ")

:

d} ve bu, aşağıdakilerden herhangi biri ile ayrılmış blok (ve daha fazla) nasıl seçileceği gösterilmektedir c} silecek ve imleci paragrafın sonuna kadar değiştirecektir.

22

Kullanım ct)c orrect t hasta sağ ayraç” için.

V, T, F, T ve F ile hareketler çok, çok faydalıdır. :help t, :help f.

Güncelleme: sen parantez orada iç içe varsa:

  • vi)o`` Parenthese kapanış kadar seçecektir (daha sonra seçimin diğer ucunda geçmek ve nerede olduğunu taşımak, iç parantez seçecektir (``)
  • vi)``
(fakat o gerek kalmadan aynı mekanizmayı) Parenthese açılış dek seçecektirBirincisi, yalnızca vi) yapıyor olduğunuzda bir imleç atlaması hatırlanır ve `` önceki imleç konumuna gider. Görsel modda o'un bu durumu etkilemediği görülüyor.

+2

Bir detay: orijinal soru ile küçük bir fark var, sanırım, bu bir sonraki kapanış parantezine uygulanacağından, vi ('örneğin, eşleşen olanı arar. Örneğin, yazarak vi (') '' '(' '' '' '' '' '' '(' '' '' '' '' '' '' '' '' '' '' (metin) (daha fazla) 'da,' 'vt '' yazarken '' ilk kapanış parantezini seçmeyi başaramaz '' – Philippe

+0

@Philippe: tam olarak yapan bir çözümünüz var mı? doğru şey? –

+1

Philippe'in örneğinde, "vf)", xt (daha fazla) "seçeneğini seçer. 'v2t)' aynı şeyi yapardı ama benim için çok fazla sayım ve yazarak. – romainl

4
Sana k üzerinde olduğunu varsayarak, ama ne istediğinizi yapmak için genel bir yol bilmiyorum

:

The (quick (brown) fox) jumps over the lazy dog. 
  • v2t) seçmek olacaktır:

    (The quick (brown) fox) jumps over the lazy dog. 
         ^^^^^^^^^^^^^ 
    

    ise Saymak istemiyorsan, seçiminizi genişletmek için t) zincirini kullanabilirsiniz: vt)t) ilk önce:

    sonra 10
    (The quick (brown) fox) jumps over the lazy dog. 
         ^^^^^^^^ 
    

    :

    (The quick (brown) fox) jumps over the lazy dog. 
         ^^^^^^^^^^^^^ 
    
  • vT( seçersiniz: t f T ve F kullanmanın

    (The quick (brown) fox) jumps over the lazy dog. 
    ^^^^^^^^^ 
    
İlgili konular