args and argdo commands'un bir bileşimini kullanarak dosyadaki tüm dize olaylarının Vim içerisindeki yerini almanın bir yolu vardır. Ne yazık ki bu çözümle ilgili bir dezavantaj var: Büyük projeler için sorun olabilecek tüm dosyaları açacak. Herkes daha kompakt ve hafıza açısından verimli bir yol biliyor mu? İşteVim: Büyük bir projede bul ve değiştir?
cevap
find projectfolder -type f -exec grep -Iq 'pattern' {} \; -exec vim {} +
Bu çözümle ilgili küçük bir sorun var: 'Vim: Uyarı: Giriş, terminalden değil, vim bırakıldıktan sonra bozuk bir konsola neden olur. Bunun nedeni, xargs'ın argüman komutlarını standart girişin kullanıcının terminali olmadığı bir ortamda çalıştırmasıdır. Bu yüzden bir şey öneririm: 'projectfolder -type f -exec grep -Iq 'pattern' {} \; -print | xargs sh -c ' dev/tty vim $ *' ' – nab
@nab İyi nokta. Bazı testlerden sonra, (en azından benim için) en azından, -print0 | xargs ... '' '' '… Aslında biraz mantıklı, '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '•' '' '' '' '' '•' '' '' '' '•' '' '' '' '' '' '' '' '' • '' '' '' ' Gördüğüm ikisi arasındaki ilk fonksiyonel fark bu. – Kevin
(Ben perl
kullanmadığımda) bunun için gereken adımları:
find . -name '*.java' -exec vim +'%s/OldName/NewName/gc' +'wq' {} \;
yani tüm "* .java" dosyalarında "YeniAd" ile "eskiad" yerine, ama beni istemi Her ikame için onay için.
- 1. VIM tüm olayları bul ve gir ile değiştir
- 2. Dize Bul ve Değiştir Yöntem
- 3. jQuery dizileri bul ve değiştir
- 4. Visual Studio nasıl kullanılır Regex ile küçük harf büyük harfe dönüştürmek için Bul ve Değiştir Değiştir
- 5. CKEditor, Jquery - bul ve değiştir HTML
- 6. XCode Tüm proje dosyalarında bul ve değiştir
- 7. İlk satır aralığını bul ve değiştir
- 8. Eşleşen metni bul ve sonraki satırı değiştir
- 9. Vim girinti formatını değiştir
- 10. Nokogiri (RubyGem): HTML etiketlerini bul ve değiştir
- 11. Objective-C Dize Sorunu Bul ve Değiştir
- 12. Maven Eclipse Büyük bir projede SVN entegrasyonu
- 13. vim karakterini değiştir \ n
- 14. Vim: fare tıklama davranışını değiştir
- 15. Vim regex n karakterleriyle değiştir
- 16. VIM gui sekme genişliğini değiştir
- 17. git: en büyük taahütleri bul
- 18. bul ve bul EndekslenmişDB'de
- 19. Özel Karakterlerle Komut Satırında yinelemeli bul ve değiştir
- 20. jQuery - Vücut yüklendikten sonra, metni bul ve değiştir
- 21. Büyük bir projede simgeler (xaml yolları) nasıl yeniden kullanılır?
- 22. VI (VIM): sağdan sola sil/değiştir?
- 23. Vim, ekleme modundayken blok imlecini değiştir
- 24. Sublime Metninde bir URL'deki tüm sayıları Bul & Değiştir
- 25. Xcode, büyük/küçük harfe duyarlı şekilde sıkışmış belgeyi bul
- 26. Rails bir kullanıcı bul ve form oluştur
- 27. Sıralı bir dizideki x'den küçük en büyük değeri bul
- 28. Maven: Bir projede Java ve Scala'yı karıştırma
- 29. vim-haskellmode ve hsenv
- 30. Linux'taki büyük projede html bağlantılarını kontrol etmek için ne gerekir?
Vim kullanıyor musunuz? Sed kullanayım, bu iş için daha iyi bir araç. –
@GregHewgill Vim regexp'deki "gc" bayrağı gibi belirli bir değişikliği onaylama şansına sahip olmak isterim. Sadece 'sed -i' kullanmak benim için biraz tehlikeli görünüyor. – nab
Yine de tüm değişikliklere bakacak olursanız, sed kullanın ve sonra ortaya çıkan farklılığı inceleyin. –