Bir yapılandırma dosyasını düzenlemeye çalışıyorum ve belirli bir dize her eşleştiğinde belirli bir satır satırını (yeni satırda) eklemek istiyorum ... aradığım her şey arama yapar ve değiştirir, arama ve ekleme için arıyorum ...Dize için arama yapın ve satır ekleyin vi/vim
13
A
cevap
13
vim
\r
yeni hattır.
:g/specific string/s/.*/&specific line of code
g
komut specific string
içeren tüm satırları getirir ve daha sonra bu hatlara s
yedek komutunu uygulayın: Yani bu ne yapardım bu
%s/search string/&\rnew code/
0
gibi bir şey yapabilirsiniz. ": G" komutu muhtemelen daha iyidir s
komut kullanıyorum düşünüyorum, onun içeriği ile bütün çizgi artı şahsen specific line of code
HTH
13
yerine ": s" Bu sorunun.
:g/key/norm owhat ever you want
yapacak metni:
foo
bar
key
foo2
bar2
key2
blah
için: Eğer desen içeren çizgisinin üzerinde yeni bir satır eklemek istiyorsanız
foo
bar
key
what ever you want
foo2
bar2
key2
what ever you want
blah
, sadece küçük "o" olarak değiştirin "O".
Açıklama için. Yerine kullanıldığında ve işareti ekleyerek yapar? Veya değiştirdiğiniz satırı içeriyor, böylece "% s/search string/\ rnewcode & /" ile başlayabilirsiniz? – VolatileStorm
@Jaypal '% s /^.* arama dizesi. * $/& \ Rnew code /' daha iyi olabilir mi? Seninki orijinal çizgiyi kırabilir. Örneğin, satır "dizge = xyz" veya "foosearch dize = arama dizgisi" – Kent
"\ r", yedek dizgede yeni satır ise. Arama modelinde '\ n' yeni satırdır. – Benoit