1. İki aşamalı bir ikame kullanarak davranışı elde etmek zor değildir:
:,$s/BEFORE/AFTER/gc|1,''-&&
İlk olarak, ikame komutu mevcut olandan başlayarak dosyanın sonuna kadar her satır için çalıştırılır:
,$s/BEFORE/AFTER/gc
Daha sonra, bu :substitute
komut aynı arama düzeni, değiştirme dizesi ve bayraklarla, şu :&
komutu kullanarak tekrarlanır (bkz. :help :&
):
1,''-&&
Bununla birlikte, ikincisi, dosyanın ilk satırından önceki bağlam işaretinin ayarlandığı satıra eksi bir olan satır aralığı üzerinde ikame gerçekleştirir. İlk :substitute
komut, gerçek değiştirmelere başlamadan önce imleç konumunu sakladığından, adreslenen ''
satır, ikame komutu çalıştırılmadan önceki mevcut satırdır. ( ''
Adres '
sözde işareti ifade eder
; ayrıntılar için bkz. :help :range
Ve :help ''
.)
İkinci komutun ( |
komut ayırıcısından sonra - bkz.
:help :bar
) İlkinde desen veya bayraklar değiştirildiğinde herhangi bir değişiklik gerektirmediğine dikkat edin.
2. Bir miktar yazmayı kaydetmek için, yukarıdaki ikame komutunun iskeletini komut satırına getirmek için, bir Normal mod eşlemesi şu şekilde tanımlanabilir:
:noremap <leader>cs :,$s///gc\|1,''-&&<c-b><right><right><right><right>
Son <c-b><right><right><right><right>
kısım, imleci komut satırının başına ( <c-b>
) ve ardından dört karakter sağa ( <right>
× 4) hareket ettirmek için gereklidir , böylece ilk iki eğik çizgi arasına, kullanıcının arama modelini yazmaya başlaması için hazırdır. . İstenilen model ve değiştirme hazır olduğunda, elde edilen komut tuşuna basılarak çalıştırılabilir
Enter.
(Bir yaptırılır //
yerine ///
bir modeli yazın tercih ederse o zaman zaten mevcut ayırma çizgi başlayan imleci hareket ettirmek için yerine sağ oku kullanarak, yedek dizesi ardından ayırmayı çizgi kendini, yazın, yukarıda eşlemenizde yedek parça.)
\vpattern
- 'çok sihirli' kalıp: alfanümerik olmayan karakterler özel normal ifade sembolleri olarak yorumlanır (kaçış gerekmez)