Bunun eski bir soru olduğunu biliyorum ve @ mykola-golubyev'in yöntemi, OP sorusundaki belirli durum için en iyi cevaptır (ki, aynı değişken adlarına sahip birden çok bloğa sahip olabileceğiniz karmaşık kodlardan geçtiğini varsayıyorum) ; ancak, google aramalarından buraya gelen pek çok kişi, VIM'deki değişkenleri yeniden adlandırmak için daha az duruma özgü yollar arar ve bunlar daha kısa olabilir.
Kimsenin bu şekilde önermediğine şaşırdım:
* :s// YENİ İSİM /gc
*Aynıdır gno imlecin altındaki sözcüğün sonraki gerçekleşmesinde arar VE geçen deseni aranır hale siz yedek komuta arama deseni atladığınızda yüzden, VIM bu aramak için kalıptır varsayar -.
Küçük miktarlarda değişken kopya için daha da hızlı:
* cw NEWNAME, <esc> ardından n.diğer durumlar için tekrarlayın
Oluşum ara, cwiçin komut değişim sözcüğü , nson aranır vadeli bir sonraki geçtiği gider ve .(olan son komutu tekrarlar NEWNAME değişiklik kelime )
(Tüm bunları bilen krediler Reddit'te @doomedbunnies'e gidiyor )
Bir başka harika numara da şudur: ( @ nobe4 kredisi )
* cgn NEWNAME, <esc> ardından .diğer durumlar için tekrarlayın
cgn"(sonraki tekrarı bul) sonucunu değiştir" dir. Artık bu son komutn olduğuna göre, bir sonraki olaya gitmek için öğesine ihtiyacınız yok , bu nedenle tekrar daha az vuruş ve daha da önemlisi, değiştirmeye gerek yok nve .. Ancak, belli ki, bunun dezavantajı, bir olayı atlamanın bir yolunu bulamamaktır.
İşte bazı avantajlar:
- eşleştirme yok, .vimrc (veya init.vim) yok, böylece karşılaştığınız herhangi bir VIM kopyasında kullanabilirsiniz (örneğin, VIM'i istediğiniz şekilde yapılandırmanın 'hızlı' amacını ortadan kaldıracağı bazı VPS veya arkadaşınızın makinesinde hızlı bir görev) )
- kelime seçimi için
*veya kullanmak gnçok hızlıdır - sadece bir tuş vuruşu (pekala, 1.5 diyelim)
- kullanarak
*veya gnbaşka kelimelerin içinde herhangi bir eşleşme olmadığından emin olmanızı sağlar :%s/<C-R>//gc. :%s/\<OLDNAME\>/NEWNAME/gcElle yazarak vuruşlar : Kişisel olarak, \<eşleşmeleri yalnızca tam kelimelerle sınırlamak için bazı şeyleri kullanmayı unutuyorum .
- Kapsam kullanmamak,
nistenmeyen eşleşmeleri atlamak için yalnızca birkaç ekstra vuruşla sonuçlanır - muhtemelen kapsamı sınırlamak için gereken ekstra vuruşlardan bile daha az. Normal koşullar altında, değişkenleriniz büyük olasılıkla bir şekilde belirli bir kod bloğuna yerelleştirilmiştir.