Bir deseni geçerli satır numarasıyla değiştirme


17

Bu dosyadaki 'x' değerini geçerli satır numarasıyla değiştirmek istiyorum. Yani, değişim

x
x
x

için

1
2
3

Şimdilik bir Perl tek katlı kullanıyorum:

perl -pi -e '$x=$.; s/x/$x/' myfile.txt

UltraEdit'in dikey bir seçim ve değiştirme ile yapabileceğini düşünüyorum. Bu vim'de yapılabilir mi? (Buradaki örneğim, 'x' seçeneğinin tek bir satırda olduğunu varsayar. Ancak gerçek dosyamdaki satırlar çok daha karmaşıktır.)

Yanıtlar:


25

Evet, vim bunu yapabilir! Genel bir arama yapın xve onunla değiştirin \=printf("%d", line('.'). Örneğin:

:%s/x/\=printf("%d", line('.'))

xGerekirse başka bir aramaya da geçebilirsiniz .

Açıklama:

Bu x, değerlendirme kaydının her varlığını (veya aradığınızı) değiştirir \=. Bu kayıt defteri vimscript kodunu değerlendirir ve bir dize döndürür. Bu durumda, değerlendirilmekte olan kod "Bulunduğumuz satırı ondalık sayı olarak yazdır"


10

Dikey seç ve değiştir'den bahsettiğiniz için bunu da yapabilirsiniz. CtrlVDeğiştirmek istediğiniz metin kilidini seçmek için düğmelerini kullanın ve ardından c0s ile değiştirmek için 0 yazın. Ardından şu 0'ları seçin:

resim açıklamasını buraya girin

Sonra g<c-a>( g+ Ctrla) tuşuna basın :

resim açıklamasını buraya girin

Tek bir sütunu değiştirdiyseniz gv, aynı alanı hızlı bir şekilde yeniden seçmek için kullanabilirsiniz .

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.