Yanıtlar:
C işaretini ekleyin (vim komut isteminde):
:%s/old/new/gc
"eski" nin her gerçekleşmesinde size bir evet / hayır istemi verecektir.
Vim'in yerleşik yardımı, onaylı değiştirme seçildikten sonra mevcut seçenekler hakkında yararlı bilgiler sunar. kullanın:
:h :s
Ardından onaylama seçenekleri ile ilgili bölüme gidin. Aşağıdaki ekran görüntüsü:
Örneğin, bu ve kalan tüm eşleşmeleri değiştirmek için kullanın a
.
Mark Biek şunları kullanarak dikkat çekti:
%s/old/new/gc
global bir arama için her bir değişiklik için onay ile değiştirin. Ancak, eski metnin doğru eşleşeceğini etkileşimli olarak doğrulamaktan da keyif alıyorum. Önce regex ile bir arama yapıyorum, sonra bu kalıbı tekrar kullanıyorum:
/old.pattern.to.match
%s//replacement/gc
s//
Geçen arama deseni kullanacaktır.
Aradığınızı düşünüyorum c
, örneğin s/abc/123/gc
, bu VIM'in değiştirmeleri onaylamasına neden olacaktır. Daha fazla bilgi için bkz. Yardım: ikame.
Genellikle find / substitute / next / repeat komutunu kullanırım :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
En Yani find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, vb.
Büyük ikameler için bir acıdır, ancak bazı eski oluşumları seçici olarak göz ardı etmenize izin verir ( bir ikameyi tekrarlamak n
yerine bir sonrakini bulmak için tekrar basarak .
).
<CR>
?
Değiştirilen metninizin eşleşen her bir oluşum için değişmesi gerekiyorsa (örneğin, tekil bir değiştirme uygulamak için Evet / Hayır'ı seçmemek değil) etkileşimli değiştirme olarak adlandırdığım bir Vim eklentisini kullanabilirsiniz .
Neovim artık değiştirmeyi önizleme özelliğine sahip:
Alınan görüntü: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Özelliğin belgeleri: https://neovim.io/doc/user/options.html# 'inccommand'
nvim
yerleşik bir özellik kadar havalı , bilmek güzel! Paylaşım için teşekkürler!