たとえば、 "foo"を含む現在のディレクトリの下のすべてのファイルを検索し、 "bar"に置き換えるタスクがあります。今ここ
は私の現在のソリューションです:
:vim /bar/ **/*
使用このfoo
のすべての出現を検索し、「バー」にそれを一つ一つを置き換えるために
:s/foo/bar/gc
明らかにそれは置き換えが大きくなると良い解決策ではありません。したがって、これらの2つの操作を1つにまとめる方が良いソリューションがあれば。しかし、前提条件があります:2番目のコマンドでc
と同じように置き換えの前にヒントを与えなければなりません。これは、交換する必要のない単語を置き換えるのを防ぐためです。 vimの中結合方法:vimと:s in vim
0
A
答えて
3
開き、すべてのファイル:
$ vim *
bar
:argdo %s/foo/bar/ | update
でfoo
を置き換えチュートリアル:http://vim.wikia.com/wiki/Search_and_replace_in_multiple_buffers
0
最も簡単には次のようになります。
vim $(egrep -l '/foo/' **/*) -c 'bufdo %s/foo/bar/g'
しかし、これはファイル名に空白があると失敗します。より堅牢なアプローチは次のようになります。
files=()
while IFS= read -rd '' filename; do
files+=("$filename")
done < <(egrep -Zl '/foo/' **/*)
vim "${files[@]}" -c 'bufdo %s/foo/bar/g'
関連する問題
- 1. Vim words in Comment
- 2. Boxtree/circletree in VIM?
- 3. VimのAutoAligment in VscodeVim
- 4. copy paste in iterm、vim
- 5. Vimの方法は、カーソルのvimで
- 6. vim検索の中で '-s'を見つける方法
- 7. Vimのインクリメンタルサーチ、次の結果
- 8. VimのシフトタブとVimの逆タブのマッピング
- 9. マッピングnmap <C-W> | to、\ in Vim
- 10. Vim:選択されたテキストをvimコマンドとして実行する方法
- 11. Cプログラミングとvim
- 12. vimとlatex-box
- 13. Vimコマンドとマッピング
- 14. Vimとキーマッピング
- 15. \ nと、Vimの
- 16. vim-haskellmodeとhsenv
- 17. VIMプロジェクトとタブ
- 18. findの結果をvimのargaddコマンドに渡す方法
- 19. [] VIM
- 20. vim
- 21. VIM:
- 22. VIM:
- 23. Vim
- 24. VIM
- 25. vimの条件に基づいて行を連結する方法は? vimので
- 26. Vimは -
- 27. Vim errorformat
- 28. Vimビルドラテックスファイル
- 29. チェーンvimgrepとVimの
- 30. vimのコマンドラインとステータスライン