Vim düzenleyicide bir dizi satır için boşluk silme


12

Bir dosyada aşağıdaki gibi bazı metin var:

  sample text
    some random text
            even more random text
text with no indent
 worst indention

Her satırdan önce boş alanı silmem gerekiyor. Bir satır için yaptığım şey 0dw

Aynı komutu kullanarak tekrarlayabilirim. ancak manuel olarak sonraki satırlara giderek.

Ancak bu satır bloğuna '0dw' uygulamanın bir yolu var mı?

Sanırım makroları kullanmanın bir yolu var, ama daha önce kullanmadım. Ama başka seçenek yoksa öğrenmeye hazırım.


+1 güzel bir soru, sonunda aynı şeyi bir sürü yapmak. Ve siteye hoş geldiniz.
Sardathrion - SE kötüye karşı

Yanıtlar:


10
:%s/^\s\+
" Same thing (:le = :left = left-align given range):
:%le

Daha fazla bilgiyi http://vim.wikia.com/wiki/Remove_unwanted_spaces adresinde bulabilirsiniz.

Bunu belirli bir çizgi aralığı için yapmak istiyorsanız:

:19,25s/^\s\+//

BTW, vim öğrenmeye başlamanın en iyi yolu vimtutorkomutu yürütmektir , size Vim'in Vim editöründe nasıl kullanılacağını öğretir.


1
: le was awesome ve alternatifler ve bağlantı için çok teşekkürler :)
saiy2k

3
Vimtutor bahsi için +1 ve iyi bir cevap.
Sardathrion - SE kötüye karşı

1
VÇizgi seçimini genişletmek için imleci kullanarak ve hareket ettirerek ilgili çizgileri seçin . Ardından :otomatik olarak girmek için tuşuna basın '<,'>ve oradan Nikhil'in normal ifadesini kullanabilirsiniz.
UncleZeiv

1
bir dizi çizgi yapmanın başka bir yolu (her zaman satır numaralarını unuttuğum için) 2 çizgiyi işaretlemek ve işaretler üzerinde çalışmaktır. Örnek olarak, 19. satıra gidin ve 'ma'ya basın, 25. satıra gidin ve' mb'ye basın, ardından yapın :'a,'bs/^\s\+//.
Patrick

7

Bunu yapmanın alternatif bir yolu da VIM'in girinti araçlarını kullanmaktır (genellikle </ dizinine bağlıdır >). Öncelikle hangi çizgilerin etkileneceğini belirtmek için bir yol gerekir. Görsel seçim modunu veya etkilenecek bir dizi çizgi belirtmek için başka herhangi bir yöntemi kullanabilir, ardından kaldırmak için isteğe bağlı olarak yüksek bir sayı veya girinti düzeyi kullanabilirsiniz. 9<genellikle geçerli satır (lar) dan en az 9 olası girinti seviyesini (sekmeler / boşluklar) kaldırmak için hileyi gayet güzel yapar.


3

Bunu aşağıdaki basit adımlarla yapmak için bir yaklaşımım var:

1. press `v` to go to visual selection mode
2. select the lines you want to affect
3. :'<,'>normal 0dw

Üçüncü adımın açıklaması:

0 satırın başına gider.

dw kelimeyi siler (boş alanlar).

normalkomutu uygular 0dw.

'<,'> görsel modda seçilen tüm satırlar için normali tekrarlar.


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.