vim:

2012-01-13 11 views
12

Aşağıdaki kod var ki bir sonraki boş olmayan karakter dek tüm boşluk silin:vim:

<p> 
    Hello 
</p> 

Ve bunu

<p>Hello</p> 

ben imleci koymak istiyorum yapmak istiyorum satır 1'in sonunda normal mod, yani '>' üzerinde ve bir sonraki karaktere kadar tüm boşlukları silmek için bir komutu var. Aklıma gelen en yakın Hello kadar herşeyi siler hareket

d/Hello 

ama mesele o imlecin altındaki da karakteri siler olmasıdır ('>') bu yüzden

<pHello 
</p> 
ile bitirmek

Bunu nasıl yaparsınız?

+3

Kapatmak için oylamadan önce, lütfen şunu okuyun: [Vim Sorular: SO veya SU] (http://meta.stackexchange.com/questions/25925/vim-questions-so-or-su) –

cevap

16

bir yolu.

JxJx 

Açıklama:

J   # Join current line with next one but substitute end of line with a space. 
x   # Remove the space. 
Jx   # Repeat same process for last line. 
+0

Bir çok kez yapmam gerekiyor ve işlemi '.' üzerinden tekrarlamaya çalışıyorum, ancak bu sadece' x'' J' değil tekrar eder. Birden fazla kez tekrarlamak gerekirse lütfen bir örnek ekleyebilir misiniz? – k0pernikus

6

vim bir tag metin nesne var: Tüm etiketini seçmek için etiketi içinde

  • koymak imleç basın kdv
  • basın :, bu :'<,'>
  • tip j olur :'<,'>j
  • girin katılmak için hatlar
bu eylemi defalarca tekrarlamak zorunda olmayacak
:help v_at 

at   "a tag block", select [count] tag blocks, from the 
      [count]'th unmatched "<aaa>" backwards to the matching 
      "</aaa>", including the "<aaa>" and "</aaa>". 
      See |tag-blocks| about the details. 
      When used in Visual mode it is made characterwise. 
+2

'vatJ' aynı sonuçları al. – Kambus

+3

Bu aslında ': join' tarafından eklenen boşluklardan dolayı soruyu yanıtlamıyor. –

1

ikinci hat (Hello diyen kimseden) herhangi bir yerinde duran, basın aşağıdaki tuşları: ^d0vatgJ. Basitçe açıkladı:

  1. ^ ilk boşluk olmayan karaktere gidecek

    , H
  2. d hattının başlangıcına silecektir
  3. vbirt tüm etiketi seç
  4. grJ sokulması boşluklar

Eğer H başlamak ise, ^ parçası atlayabilir olmadan tüm satırları katılacaktır.