Vim'deki "bul ve değiştir" iş akışımı optimize etmek istiyorum. Sık yaptığım bir şey, çoğunuzun da yaptığından emin olduğum gibi. Genellikle satırları boyunca bir şeyler - bir bloğu kopyalayın ve bir değişkenin adını birkaç yerde değiştirin. Biliyorum, biliyorum ki bu muhtemelen "kodunuzu neden kopyalayıp yapıştırıyorsunuz" refleksinizi tetikler, ancak bu yoldan aşağıya inmeyelim ... Çok sayıda geçerli kullanım durumu var :)
Arama ve değiştirme komutlarının farkındayım: :s
ya da :%s
onlardan hoşlanmıyorum. Beni hem aradığım tam değişken adını hem de neye değiştirdiğimi yazmaya zorluyor. Belki yazarak miktarını düzeltmek için daha iyi bir yol var :%s
? Sık sık uzun tanımlayıcı değişken isimleri kullanırım, bu yüzden bu benim için çok önemli. Ayrıca, sıfırdan değişken bir isim yazmanın yazım hatası eğilimi göstermesi ve zaman ve beyin gücünü yazım hataları içinde tüketebilmesinden hoşlanmıyorum. Bunu bir kez yazmayı ve sonra mümkünse bundan tamamen kaçınmak için kopyalayıp yapıştırmayı tercih ederim.
Mevcut iş akışım, dosya etrafında hareket etmek ve birer birer değiştirmek için / hareket / yank / select / search / put hareketinin bir kombinasyonunu kullanır. Harika değil ama tam değişken adlarını yazmaktan kaçınma avantajına sahiptir. Etrafınıza ne olduğuna bağlı olarak ilk birkaç harfi yazmam /
veya başka bir hareket komutu (örn. fx
) Kullanmam gerekebilir ve ardından ve
kelimenin tamamını seçmek için tuşuna basmam gerekebilir . Ayrıca her durum için tekrarlamam gerektiğini de umursamıyorum. Her değişikliği onaylamadan asla tam bir bulma işlemi yapmam. Ancak, değiştirme eylemini tek bir tuşa basarak (bu yöntemle yapamayacağım) tekrarlayabilsem daha çok tercih edilir. Her değiştirme genellikle n
o ve
zamanki gibi bir şeydir p
(veya daha da kötüsü "0p
)
Daha hızlı bir yolu var mı?
n
ve
"0p
. Maalesef sadece birlikte taklit edilemeyen Hangi.
n ce ctrl-r 0 <esc> n.n.n.n.n.n.
.
son "komut bloğu" nı tekrar eder (örneğin, terimin tam olduğundan emin değildir. örneğin: örneğin: move + action + text. exemple:cwtoto<Esc>
(imleçten kelimenin sonuna "toto" ilec/foo<enter>bar<Esc>
değiştir ), foo "ve" bar "ile değiştir). sonra hareket edebilirsin (imleç, hjkl veya sayı + hjkl ile (n kere yapar), G (dosyanın sonuna git), / bir şey (hemen önce git) bir şey "), vb) ve sonra.
aynı" komut bloğunu "yinelemek için basın