VIM

2012-12-15 13 views
13

'daki ilk sütundan her şeyi kaldırın Bir metin dosyanız var ve her satırdaki ilk sözcük dışında her kelimeyi kaldırmak istiyorum ve bunun nasıl yapılacağını bilmiyorum.VIM

Yani, varsa:

one 
four 
six 

herhangi bir fikir var:

one two three 
four five 
six 

Birlikte kalmasını istediğiniz?

cevap

13

çizgiler boşluk ile başlar yoksa, boş bir dize ile ' .*' (ilk kelimeden sonra her şeyi eşleşir) yerine geçebilecek:

:%s/ .*//g 
+1

Teşekkür ederiz. İşe yarıyor. :) – Casteurr

2

Alternatif olarak, makro kullanarak bunu yapabilirsiniz. Kayıt modunda bir makroyu kaydetmeye başlamak için normal modda qa yazın. Geçerli satırdaki ancak ilk sözcükteki her şeyi silmek için 0elDj yazın ve sonraki satıra gidin. Makroyu kaydetmek için tekrar q yazın.

Artık makronuzu @a ile herhangi bir hatta tetikleyebilirsiniz. Makroyu arabellekteki her satıra uygulamak için :%norm! @a'u çalıştırın.

Bu sayede, sadece istediğiniz gibi değil, istediğiniz karmaşık işlemleri tekrarlayabilirsiniz. Makroları severim :)

DÜZENLEME: Bir satırın 2 karakterden az olması durumunda çalışmadığını unutmayın. Bu nedenle, bu genellikle bu problem için en iyi yaklaşım değildir.

6

Daha güçlü bir çözüm, bu tür manipülasyonlarda gerçekten iyi olan bir program aracılığıyla filtrelemektir: awk.

one two three 

    four five 
      six 

çalıştırın :%!awk '{print $1}' ve alacak:

one 

four 
six 

awk 'ın varsayılan alan ayırıcı karakteri bir alandır, sizin duyduğunuz kadar değişebilir olsa

bu içeriği olduğunu varsayalım İstediğin şeye bağlı olarak istedim.

+0

Kesinlikle doğru araç. benim için iyi çalıştı. – yantaq