Vim'deki ikinci sütun nasıl silinir?


13

Sekme ile ayrılmış bir dosya gibi:

name1   verb1   name2   verb2   etc...

İkinci sütunu silmek istiyorum. Ben birini düzenleyerek çalıştı bu cevaplar , ama aşina olmayan varlık sedve awkyapamadım.

Biri bana yardım edebilir mi?


OP'nin orijinal sekmeleri belirtmek için kullandığı \ t.
steeldriver

@steeldriver Tamam, haklısın. Bunun bir çizgi olduğunu düşündüm. çıkarıldı. Ama göre doğru birine düzenlenmiş sonrası ilk .thanks
αғsнιη

1
vim visual-block modu sorunu çözmez mi? (normal modda ctrl-v, xsilinecek sütunu seçin )?
Rmano

@Rmano bu yardımcı olur, ama bana görsel modda dosyanın sonuna gitmek nasıl söyleyebilir misiniz? (Ctrl G'yi denedim, ama çalışmıyor).
teaLeef

Yanıtlar:


10

Vim'de, komutu kullanabilmeniz gerekir

:%s/\t[^\t]*//

(ikame ve TABardından TABhiçbir şey olmadan herhangi bir karakterin sıfır veya daha fazla tekrarlanması ). Dosyanız yalnızca iki sütun varsa, biraz daha basit kullanabilir :%s/\t.*veya :%s/\t.*$hangi ilk yerini TABve herhangi satırın sonuna kadar aşağıdaki karakterleri.


23

Kabul edilen cevap bundan çok daha zariftir (onu iptal ettim!) Ama hatırlamıyorsanız doğrudan vim görsel blok modunu kullanabilirsiniz . Vim'i açın ve sütunun ilk köşesine gidin (normal mod), şöyle:

resim açıklamasını buraya girin

Yazın CTRL-Vve imleci sütun seçmek için hareket ettirebilirsiniz, bu yarıda:

resim açıklamasını buraya girin

Sonuna gitmek için tuşuna basın G:

resim açıklamasını buraya girin

blok kırık görünüyor çünkü boş olan son satırdayız; ktekrar görmek için bir satır yukarı git (yukarı ok veya ).

resim açıklamasını buraya girin

Şimdi xbloğu silmek için tuşuna basmanız yeterlidir :

resim açıklamasını buraya girin


6

Ben kullanırım cutbunun için

cut -f1,3- file.txt > newfile.txt
mv newfile.txt file.txt

Bunu vim içinde bir filtre olarak da kullanabilirsiniz (bu, dosyadaki tüm satırların yerini alır; 2-9 satırlarını işlemek veya istediğiniz satırları seçmek 2,9yerine ( örneğin) de kullanabilirsiniz ):%V

:%!cut -f1,3-

-f1,3-"birinci alanı, ardından üçüncü alanı ve satır sonuna kadar tüm alanları" yazdırır. Varsayılan olarak, cutbir sekmeyi ayırıcı olarak kullanır; başka bir şeye ihtiyacınız varsa -d(bkz. man cut) seçeneğini kullanın .


4

Bunlardan birini deneyebilirsiniz:

:%norm WdW

veya görsel mod kullanarak manuel olarak:

  1. İkinci sütuna atlayın (örneğin: tuşuna basarak W).
  2. Görsel engellemeyi başlatın Ctrl+v.
  3. (Basarak örn: İkinci sütun seçin W, G).
  4. Tuşuna basarak silin d.

Komut satırından yerinde yapmak için şunu deneyin:

$ ex +':exe ":%norm f\<Tab>dE"' -scx file

İlgili: Sekme tuşunun hareket için kullanılması için hazır bilgi nasıl yazılır?

Ayrıca bakınız:


Evet, + 1, ancak 3. adımda boş satırlarınız varsa dikkat edin)
Rmano
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.