上記のコメントから私の仮説を確認または反論するために、この質問をさらに掘り下げました。Xcode は実際、検索/置換アクティビティに関連するファイルのディスク上のデータに対して直接動作します。ファイルシステム イベントは、検索/置換操作が .pbxproj ファイルを開き、ビルド構成と設定セクションへのファイルとグループの参照を介して上から下に正規表現アクティビティを開始し、最終的にそれぞれが指すディスク上のデータに検索を適用することを示唆しています。 .pbxproj のエントリの
当然のことながら、ユーザーが入力する正規表現によっては、検索内のカーソルの現在の位置でコンテンツを正確に一致させ、現在の検索のコンテキストを破棄する置換操作をトリガーすることは完全に可能です。これにより、検索が途中で終了する可能性が最も高くなりますが、検索が十分に含まれていない場合、無限に長い検索/置換操作 (例: find '.' を 'aa' に置換) がトリガーされる可能性もあります。この Xcode の検索/置換動作に関して、「自己食いヘビ」問題のクラス全体を食い止めるために、Apple は検索操作の間 .pbxproj をロックすることを選択したようです。これは、Xcode の検索/置換正規表現ツールを使用できないことを意味しますが、優れたテキスト エディターは数多くあります (無料のものも含まれます! ) マルチファイル検索 (TextWrangler および BBEdit) を介して正規表現の検索/置換を実行できるようにします。これらのエディターを使用すると、マスター プロジェクトのサブフォルダー内のファイル パターン (*.pbxproj など) で検索をフィルター処理できます。プロジェクトがディスク上でどのように構成されているかに応じて、共通の祖先から始まる検索を選択すると、Xcode の場合と同じように検索/置換操作を実行できます。実際、Xcode で特定した同じ正規表現文字列をこれらのツールで使用して、必要な変更を加えることができます。共通の祖先から始まる検索を選択すると、Xcode の場合と同じように検索/置換操作を実行できます。実際、Xcode で特定した同じ正規表現文字列をこれらのツールで使用して、必要な変更を加えることができます。共通の祖先から始まる検索を選択すると、Xcode の場合と同じように検索/置換操作を実行できます。実際、Xcode で特定した同じ正規表現文字列をこれらのツールで使用して、必要な変更を加えることができます。
ほとんどの大規模または自律的な編集と同様に、編集する予定のファイルのバックアップを保持してください (プロジェクトは完全にローカルで、ソース管理されていないプロジェクトであるため、これは少なくとも 2 倍になります)。変化します。幸運を祈るとともに、あなたが最終的にどの道をたどったか、そして物事がどのように進んだかをお知らせください。