Sık sık kendimi büyük bir dosya üzerinde ve önemsiz olmayan arama ve değiştirme ifadeleri ile ayrılmış maçlar yerine koyma ihtiyacı buluyorum.
Örneğin, bazı işlev çağrılarım olduğunu varsayalım okFunction(arg1, arg2 arg3)
. Args elbette her fonksiyon çağrısında farklı olacaktır. Şimdi diyelim ki ihtiyaç duymayan daha iyi bir fonksiyon keşfettim arg2
. İle tüm dosyayı kolayca ayarlayabilirim
:%s/\<okFunction(\(\w\+\), \(\w\+\), \(\w\+\))/betterFunction(\1, \3)/gc
Kavramsal olarak basit olmasına rağmen, bu uzun kalıpta sözdiziminin doğru olduğundan emin değilim. c
Bayrak gerçekten burada yardımcı olur, ancak sorun teyidi talebinde, vim maç ile değiştirilir ne olacağını göstermez olmasıdır. Yani, yerine koyma ifadesini gösterecek, ama değerlendirilen sonucu göstermeyecek. Eğer oyuncu değişikliğini onaylarsam y
, vim hemen bir sonraki maça atlayacak ve herhangi bir hata yapıp yapmadığımı göremeyeceğim.
Sorunu kısmen çözen vim-over eklentisini buldum , ancak sadece komutu yazarken ekranda tüm matematik görünürse. Enter tuşuna basarsanız, davranış yukarıda tarif ettiğimle tamamen aynıdır ve önizleme almıyorum.
Peki, yerine komutlar için onay isterken yerine koyma ifadesini değerlendirmek için vim almanın bir yolu var mı?
%
sonuç beklediğim şey olup olmadığını kontrol edin ve sonra ikame ile kullanın %
(sadece birkaç tuş vuruşları:) :<up><c-b>%
. Açıkçası bir önizleme seçeneği bundan çok daha verimli olacaktır. Hiçbir yama mevcut olmasa da, bir vimscript işlevinde bu tür bir seçenekle ikameyi sarabilir, ancak bu çok fazla iş gibi geliyor ...