オープンソースプロジェクトの一部を書き直したい。これには、メソッドの名前変更が含まれます。プロジェクト全体でemacsで効率的にそれを行うにはどうすればよいですか?
検索や置換などのハックをすべてのバッファーで使用するのは避けたいです。
ropemacs
。
オープンソースプロジェクトの一部を書き直したい。これには、メソッドの名前変更が含まれます。プロジェクト全体でemacsで効率的にそれを行うにはどうすればよいですか?
検索や置換などのハックをすべてのバッファーで使用するのは避けたいです。
ropemacs
。
回答:
helm-ag
関数名のすべてのインスタンスを検索するために使用し(開いているバッファーだけでなく、サブディレクトリを含むすべてのファイルを検索します)、C-c C-e
すべての一致をリストするバッファーを入力して、関数名を変更します。完了したら、を押しC-c C-c (helm-ag--edit-commit)
て、開いているすべてのファイルの変更を保存します。
紛らわしいかもしれませんが、https://github.com/ShingoFukuyama/helm-swoopをご覧ください
あなたがそれをgrでると、あなたはそのような素晴らしい機能が存在することを喜びの涙を流すでしょう。
言語を指定しなかったので、「検索と置換」よりも良い答えを出すことは困難です。
シンボルのすべてのインスタンスを(インタラクティブに)別のインスタンスに置き換えるだけの場合は、wgrepが最善の策です。grep結果バッファをインタラクティブに編集できます。
M-x package-install RET wgrep
。M-x rgrep
。いくつかの簡単な質問が表示され、指定したディレクトリ内で検索用語を再帰的に検索します。M-x wgrep-change-to-wgrep-mode
。このバッファは現在編集可能です。ここで行った変更は、ファイル自体に反映されます。replace-regexp
またはa query-replace-regexp
を実行して、リファクタリングを行います。M-x wgrep-save-all-buffers
とで編集を終了しますM-x wgrep-finish-edit
。いくつかの一般的なアプローチについては、「下を見置き換えファイル間:EmacsのWikiに」見出しはページの検索と置換http://www.emacswiki.org/emacs/CategorySearchAndReplaceを
Emacsを使用して、まだ開いていないテキストファイルで再帰的に検索および置換するための回答も参照してください。