現在のプロジェクトに属するファイル (project-find-file) にアクセスします。
現在のプロジェクト(project-find-regexp)に属するすべてのファイルから、正規表現に一致する箇所を検索します。
現在のプロジェクトに属するすべてのファイルから、正規表現に一致する箇所をインタラクティブに検索します。
現在のプロジェクト(project-query-replace-regexp)に属するすべてのファイルに対して、正規表現によるクエリ置換を実行します。
現在のプロジェクトのルートディレクトリ (project-dired) で Dired
を実行します。
現在のプロジェクトのルートディレクトリ (project-vc-dir) で vc-dir を実行してください。
現在のプロジェクトのルートディレクトリ (project-shell) で下位シェルを起動します。
現在のプロジェクトのルートディレクトリ (project-eshell) で Eshell
を起動します。
現在のプロジェクトのルートディレクトリ (project-compile)
でコンパイルを実行します。
現在のプロジェクトのルートディレクトリ (project-shell-command)
でシェルコマンドを実行します。
現在のプロジェクトのルートディレクトリ (project-async-shell-command)
でシェルコマンドを非同期に実行します。
現在のプロジェクト (project-any-command) で次のコマンドを実行します。
Emacs には、プロジェクトファイルを便利に扱うためのコマンドが用意されています。このサブセクションでは、これらのコマンドについて説明します。
ここで説明するすべてのコマンドは、現在のプロジェクトという概念を共有しています。現在のプロジェクトは、コマンドが呼び出された際に現在のバッファとなっているバッファの
default-directory(ファイル名を参照)によって決定されます。そのディレクトリが認識可能なプロジェクトに属していないと思われる場合、これらのコマンドはプロジェクトディレクトリの入力を求めます。
コマンド C-x p f (project-find-file) は、現在のプロジェクトに属するファイルを参照するための便利な方法です(ファイルの参照 を参照)。C-x
C-f
とは異なり、このコマンドでは参照するファイルのフルパスを入力する必要はなく、ファイルのベース名のみ(つまり、先頭のディレクトリを省略した形)を入力すれば十分です。さらに、このコマンドが候補として提示する補完候補には、現在のプロジェクトに属するファイルのみが含まれ、それ以外のものは含まれません。ポイントにファイル名がある場合、このコマンドはそのファイルを「フューチャー履歴」の最初の要素として提示します。プレフィックスを指定した場合は、vc-directory-exclusion-list に記載されている VCS ディレクトリを除き、プロジェクトルート配下のすべてのファイルが含まれます。
コマンド C-x p g (project-find-regexp) は rgrep
と同様ですが(Emacs での Grep による検索
を参照)、現在のプロジェクトに属するファイルのみを検索します。このコマンドは検索対象の正規表現の入力を求め、検索結果を含む Xref
モードバッファを表示します。そこでは、Xref モードのコマンドを使用して一致箇所を選択できます(*xref*
バッファで使用可能なコマンド
を参照)。プレフィックス引数を指定して呼び出すと、このコマンドはさらに検索開始元のベースディレクトリの入力を求めます。これにより、例えばプロジェクトルートの特定のサブディレクトリ配下にあるプロジェクトファイルのみに検索範囲を限定することが可能です。このコマンドの一致箇所の表示方法は、xref-auto-jump-to-first-xref の値によって影響を受けます(識別子による検索と置換 を参照)。
M-x project-search は project-find-regexp
のシーケンシャル版です。現在のプロジェクトのファイル内を検索する正規表現の入力を求めますが、すべての一致箇所を見つけて表示するのではなく、一致箇所が見つかった時点で停止し、その箇所にあるファイルを開いて編集できるようにします。残りの一致箇所を探すには、M-x fileloop-continue RET
と入力してください。
C-x p r (project-query-replace-regexp) は project-search と同様ですが、query-replace のように見つかった各マッチを置換するかどうかをユーザーに問いかけ(Query Replace
を参照)、回答後に次のマッチへと進みます。回答によって Emacs が query-replace ループを終了した場合は、後で M-x fileloop-continue RET
から再開できます。
コマンド C-x p d (project-find-dir)
は、補完機能を用いて現在のプロジェクト内のディレクトリを選択するよう促します。また、そのディレクトリ内のファイルを一覧表示する Dired
バッファ(Dired, the Directory Editor
を参照)を開きます。
コマンド C-x p D (project-dired) は、現在のプロジェクトのルートディレクトリにあるファイルを一覧表示する Dired
バッファ(Dired, the Directory Editor
を参照)を開きます。
コマンド C-x p v (project-vc-dir)
は、現在のプロジェクトのルートディレクトリ配下にあるディレクトリツリー内のファイルのバージョン管理状態を一覧表示する VC ディレクトリバッファ(VC ディレクトリモード を参照)を開きます。
コマンド C-x p s (project-shell)
は、現在のプロジェクトのルートを作業ディレクトリとする新しいバッファで、シェルセッションを開始します(Emacsからのシェルコマンドの実行を参照)。
コマンド C-x p e (project-eshell) は、現在のプロジェクトのルートを作業ディレクトリとして、新しいバッファで
Eshell セッションを開始します。Eshell: The Emacs Shell の Eshell
を参照してください。
コマンド C-x p c (project-compile) は、現在のプロジェクトのルートディレクトリでコンパイルを実行します(Emacsでのコンパイル実行を参照)。
コマンド C-x p ! (project-shell-command) は、現在のプロジェクトのルートディレクトリで shell-command を実行します。
コマンド C-x p & (project-async-shell-command) は、現在のプロジェクトのルートディレクトリで
async-shell-command を実行します。
最後に、コマンド C-x p o (project-any-command)
は、ファイルに関連するかどうかにかかわらず、現在のプロジェクト内で次に入力したコマンドを実行します。