有一種方法可以使用args and argdo commands的組合替換Vim中文件中字符串的所有發生次數。不幸的是,這個解決方案有一個缺點:它會打開所有可能成爲大型項目問題的文件。有誰知道更緊湊和高效的內存方式?Vim:在大型項目中查找和替換?
回答
find projectfolder -type f -exec grep -Iq 'pattern' {} \; -exec vim {} +
這個解決方案存在一個小問題:'Vim:警告:輸入不是來自終端,這會導致vim退出後發生故障。原因是xargs在標準輸入不是用戶終端的環境中運行其參數命令。所以我會建議一些形式:'find projectfolder -type f -exec grep -Iq'pattern'{} \; -print | xargs sh -c' dev/tty vim $ *'' – nab 2012-03-03 10:10:30
@nab好點。經過一些測試後,我發現(至少對我來說)改變'-print0 | xargs ...'到'-exec ... +'工作。這實際上是有道理的,單靠'find'不會讀取stdin,所以它的孩子可以。這是我見過的兩個人之間的第一個功能區別。 – Kevin 2012-03-04 21:14:47
這裏是我如何做到這一點(當我不使用perl
):
find . -name '*.java' -exec vim +'%s/OldName/NewName/gc' +'wq' {} \;
如更換 「OLDNAME」 與 「新名稱」 中的所有 「*的.java」 文件,但提示我爲每個替代確認。
- 1. 替換Vim中的項目而不替換舊的替換項目
- 2. 如何查找和替換大寫和小寫,並保持資本在Vim中
- 3. 在Vim中查找和替換有更好的方法嗎?
- 4. 如何在vim中查找和替換花括號{}?
- 5. 如何在Vim中查找和替換許多表達式?
- 6. VIM 7.4儲蓄替代型和替換
- 7. 崇高:previosuly查找/替換項目的
- 8. unix在目錄和子目錄中查找和替換文本
- 9. 在大文件中查找並替換
- 10. 查找並與目標C大文件替換,替換計數
- 11. 如何在vim中使用替代品查找和替換句子?
- 12. sql中查找和替換
- 13. 查找和替換r中
- 14. 查找和替換在淨
- 15. 查找和替換在javascript
- 16. 查找和替換
- 17. 查找和替換
- 18. 查找和替換
- 19. 查找和替換
- 20. 查找和替換:\」
- 21. VIM視覺塊查找/替換隻替換一行
- 22. 如何在Xcode中使用查找和替換替換多行新行在Xcode中使用查找和替換
- 23. 在Dafny中查找和替換搜索和替換?
- 24. 替換Vim中的替換
- 25. 在Vim中查看替換列表
- 26. VBA Excel查找並替換沒有替換項目已被替換
- 27. 如何選擇當前項目的查找和替換
- 28. jQuery的查找和替換多個項目
- 29. ipython notebook#查找和替換隻替換「全部」選項
- 30. 在VBA中查找和替換
你必須使用vim嗎?我會使用sed,這是一個更好的工具。 – 2012-03-02 22:41:11
@GregHewgill我希望有機會確認一個特定的變化,例如Vim regexp中的'gc'標誌。只是使用'sed -i'似乎對我有點危險。 – nab 2012-03-02 22:44:11
如果您要查看所有更改,請使用sed,然後檢查生成的差異。 – 2012-03-02 22:45:01