Next: , Previous: , Up: Maintaining   [Contents][Index]


28.2 プロジェクトで作業する

プロジェクト(project)とは1つ以上のプログラムを生成するために使用するファイルのコレクションです。プロジェクトに属するファイルは、通常はディレクトリー階層に格納されます。この階層のトップレベルのディレクトリーはプロジェクトルート(project root)として知られています。

与えられたディレクトリーが何らかのプロジェクトのルートかどうかは、プロジェクトバックエンド(project back-end)として知られているプロジェクト固有のインフラストラクチャーにより判断されます。Emacsが現在のところサポートするバックエンドはVCSリポジトリーをプロジェクトとみなしたVC (Version Controlを参照)、およびEDE (EDEを参照)の2つです。将来的には追加のプロジェクトタイプをサポートするように拡張される予定です。

ファイルがプロジェクトに属するかどうかもプロジェクトバックエンドにより判断されます。たとえばVCバクエンドは“無視された(ignored)”ファイル(VC Ignoreを参照)をプロジェクトの一部とはみなしません。

Emacsはプロジェクトファイルを手軽に扱うためのコマンドを提供します。このセクションではそれらのコマンドについて説明します。

ここで説明するすべてのコマンドはカレントプロジェクト(current project)という概念を共有します。カレントプロジェクトはコマンド呼び出し時にカレントだったバッファーのdefault-directory (File Namesを参照)により判断されます。そのディレクトリーが認識可能なプロジェクトに属していないようなら、これらのコマンドはプロジェクトディレクトリーの入力を求めます。

コマンドproject-find-fileはカレントプロジェクトに属するファイルをvisit(Visitingを参照)する手軽な手段です。C-x C-fとは異なり、このコマンドはvisitするファイルの完全な名前のタイプを要求せず、ファイルのベース名(先頭のディレクトリー部分を省略)だけでタイプできます。それに加えてコマンドが補完候補とみなすのはカレントプロジェクトに属するファイルだけであり、それ以外は含まれません。ポイント位置にファイル名があれば、このコマンドはvisitするデフォルトとしてそのファイルを提案します。

コマンドproject-find-regexprgrep (Grep Searchingを参照)と似ていますが、カレントプロジェクトに属するファイルだけを検索します。このコマンドは検索する正規表現の入力を求めて、検索結果をXrefモードのコマンドを使用してマッチの選択が可能なXrefモードのバッファーでポップアップします。このコマンドをプレフィクス引数とともに呼び出した際には、検索を開始するベースディレクトリーの入力を追加で求めます。これはたとえばプロジェクトルートの特定のサブディレクトリー配下のファイルに検索を制限することを可能にします。

M-x project-searchproject-find-regexpのインタラクティブな変種です。これはカレントプロジェクトのファイルを検索するために正規表現の入力を求めますが、すべてのマッチを探して表示するかわりに、マッチしたファイルを編集できるようにマッチを見つけたら停止してマッチしたファイルのマッチしたlocusをvisitします。マッチの残りを探すにはM-x fileloop-continue RETとタイプしてください。

M-x project-query-replace-regexpproject-searchと似ていますが、query-replace (Query Replaceを参照)が行うように見つかったそれぞれのマッチにたいして置き換えるかどうかを尋ねて、それに応答した後は次のマッチへと継続します。その応答によりEmacsがquery-replaceループをexitしてしまったら、M-x fileloop-continue RETで後から継続することができます。