Komutu tüm satırlara nasıl uygularım?


19

Bir belgedeki tüm satırları girintili yapmak istersem, >Gonu geçerli satıra ve aşağıya, ardından da >ggyukarıdaki satırlara uygulamak için yazabilirim .

>Tüm hatlara aynı anda uygulamak için kullanabileceğim bir kombinasyon var mı ?

Yanıtlar:


19

:>Komutu ve tüm dosya için bir aralığı 1,$( %kısaca) arıyorsunuz .

:%>

Daha fazla yardım için bkz:

:h :>
:h :range

5
Bu sorunun başlığı nedeniyle ("tüm satırlara bir komut uygulayın"), >bu cevabın Komut modu komutunu kullanırken, sorudaki örneğin Normal mod operatöründen bahsettiğini belirtmek gerekir :>. Bunlar, kesinlikle, aynı şey değildir. Aynı isme sahip olmaları tesadüf olarak kabul edilmelidir; genel olarak operatörleri ve komutları değiş tokuş edebileceğinizi varsaymayın. Örneğin, gUoperatörün büyük harfe metni dönüştürür, ancak :%gUolduğu değil , tüm tampon aynı uygulamak için geçerli bir komut.
tommcdo


3

Normal moddan çıkmadan şunları yapabilirsiniz:

gg>G

2
buradaki dezavantajı, dosyadaki konumunuzu kaybetmenizdir
TankorSmash

Diğer tüm cevaplar bu dezavantajı paylaşıyor ve OP, "imleç konumuna saygı" ifadesinden bir gereklilik olarak bahsetmedi.
romainl

1
<co> önceki pozisyonunuza geri dönmek için kullanılabilir @ romainl'in çözümü iki kez geri gitmenizi gerektirir, diğeri ise sadece bir kez geri dönmenizi gerektirir
Brett Y

Elbette, yerinizi korumanın değerini ve bu konumu koruyacak bir cevabın nasıl değerli olacağını takdir edebilirsiniz.
TankorSmash

1
Bu yüzden indirilmiyor. Bir yerde daha iyi bir seçenek olduğunu ve aramaya devam etmeleri gerektiğini söyleyen bir not. Örneğin, bir programlama SE sitesinde, sorunu çözen özensiz kod sorunu çözer, ancak yine de sorunu çözen ve iyi görünen başka bir çözüm bulmayı beklersiniz.
TankorSmash

3

Henüz bahsedilmeyen bir başka seçenek:

:g/^/>

Bu, komutu >desenle eşleşen tüm satırlarda çalıştırır ^.

Dezavantajı, bunun arama geçmişinizin üzerine yazmasıdır.

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.