プロジェクト(project)とは1つ以上のプログラムを生成するために使用するファイルのコレクションです。プロジェクトに属するファイルは、通常はディレクトリー階層に格納されます。この階層のトップレベルのディレクトリーはプロジェクトルート(project root)として知られています。
与えられたディレクトリーが何らかのプロジェクトのルートかどうかは、プロジェクトバックエンド(project back-end)として知られているプロジェクト固有のインフラストラクチャーにより判断されます。Emacsが現在のところサポートするバックエンドはVCSレポジトリをプロジェクトとみなしたVCを考慮するプロジェクト (バージョンコントロールを参照)、およびEDE (Emacs開発環境を参照)の2つです。将来的には追加のプロジェクトタイプをサポートするように拡張される予定です。
ファイルがプロジェクトに属するかどうかもプロジェクトバックエンドにより判断されます。たとえばVCを考慮するバクエンドは“無視(ignored)”されたファイル(バージョンコントロールファイルを無視するを参照)、更にデフォルトでは“未追跡(untracked)”のファイルもプロジェクトの一部とはみなしません。この挙動は変数project-vc-include-untracked
で制御できます。
このユーザーオプションが非nil
なら、Emacsはモードラインに(もしあれば)カレントプロジェクトの名前を表示します。プロジェクト名をmouse-1でクリックすれば、プロジェクトに関連するコマンド用のメニューがポップアップします。デフォルト値はnil
です。