'Vim bir IDE değildir' paradigmasına katılıyorum. Ancak IDE'nin olmadığı zamanlar vardır. İşte bu durumlarda kullandığım şey:
: grep,: vimgrep,: Ag,: Ggrep
Düzenli değiştirmelerle daha fazla ilgisi olan yeniden düzenleme genellikle kullandığım : grep proje ağacımda ve sonra yeniden düzenleyiciyi yapmak için bir makro kaydedin -: g ve: s beyinci değildir. Genellikle çok az çabayla çok sayıda dosyayı hızlıca değiştirmeme izin verir. Açıkçası, bu yöntemi diğerlerinden daha fazla kullanıyorum.
İş akışınıza bağlı olarak, yerleşik komutlar yavaş / uygunsuz olabilir. Git kullanıyorsanız, mükemmel Fugitive eklentisini ve :Ggrep
komutunu yalnızca git'e kaydedilen dosyaları aramak için kullanmak isteyeceksiniz . Silver Searcher'ı da hızı için seviyorum .
: argdo,: cdo ve: bufdo
: cdo ve : argdo , bir dizi dosya üzerinde vim komutlarını çalıştırmak için kullanışlıdır.
Komut satırı
Değişiklik gerektiren dosyaların listesini bulmak daha zor olduğunda :vimgrep
, yeniden düzenlemem gereken dosyaların listesini daha yakından düzenlemek için grep / find komut satırına başvuruyorum. Listeyi bir metin dosyasına kaydedin ve :e
yapmam gereken değişiklikleri yapmak için makro kayıtlarının bir karışımını kullanın .
Makro kayıt becerilerimi ne kadar az paslı tutarsam, Vim'i yeniden düzenleme için o kadar yararlı buluyorum: yazmaçlardan kaydetme / geri yükleme, kayıt sayacı değişkenlerini artırma / azaltma, makro kayıtlarını daha sonra kullanmak üzere dosyaya temizleme / kaydetme, vb.
Güncelleme
Bu anlattığım yöntemler için daha fazla video yayını yazdığından beri vimcasts.org'da yayınlandı ( TÜM Vimcast'leri izlemenizi tavsiye ederim ! ). Yeniden düzenleme için şunları izleyin:
Vimgolf ayrıca pratik yapmanın harika bir yoludur.
Bu cevabı yazdığımdan beri Dil Sunucusu Protokolü sunucularının her yerde bulunması, Vim'e (ve diğer editörlere) bazı yeniden düzenleme yetenekleri de getirdi. IMO bunlar, amaca yönelik tasarlanmış bir IDE'de göreceğiniz yeniden düzenleme yeteneklerini eşitlemekten çok uzaktır (onları kullanıyorum ve coc ve ALE'yi tercih ediyorum). Daha fazla bilgi için bu sorunun diğer yanıtlarına bakın!