1. ホーム
  2. エマックス

[解決済み】Emacsを使って、まだ開いていないテキストファイルの再帰的検索と置換を行う。

2022-04-18 20:09:52

質問

のフォローアップとして この質問 このような、簡単なはずのことをどうすればいいのかわからないから、Emacsを使うことにもっと慣れて、代わりに使い慣れたエディタを立ち上げようとしないのです。私は複数のファイルを編集する際に、この例をかなり頻繁に使用します。

UltraeditではAlt+sの後にpを押すと、ダイアログボックスが表示され、オプションが表示されますね。検索(複数行にわたる正規表現の使用も含む)、置換、ファイル/タイプ内、ディレクトリ、大文字と小文字の一致、単語全体のみの一致、変更されたファイルの一覧、サブディレクトリの検索です。通常は、まずマウスを使って、置き換えたいテキストをクリック・ドラッグで選択します。

Emacs自体(Windows XP)を使って、外部ユーティリティを呼び出すことなく、どのように *.c*.h ファイルを、あるフォルダとその下にあるすべてのフォルダに保存します。Emacsでは無理なのかもしれませんが、最小限のコマンドで簡単にできる方法はないでしょうか?

どのように解決するのですか?

  1. M-x find-name-dired : ルートディレクトリとファイル名のパターンの入力を要求されます。
  2. プレス t をクリックすると、見つかったすべてのファイルの「トグルマーク」が表示されます。
  3. プレス Q は "クエリ-置換 in Files...": クエリ/置換正規表現を入力するよう促されます。
  4. と同様に進めます。 query-replace-regexp : SPACE をクリックすると入れ替わり、次の試合へ移ります。 n をクリックすると、マッチをスキップすることができます。
  5. プレス C-x s を押して、バッファを保存します。 y を「YES」に。 n 否、或いは ! 諾々)