GNU Emacs
Emacs
Dashboard

Working with Projects

A project is a collection of files used for producing one or more programs. Files that belong to a project are typically stored in a hierarchy of directories; the top-level directory of the hierarchy is known as the project root. Whether a given directory is a root of some project is determined by the project-specific infrastructure, known as project back-end. Emacs currently supports two such back-ends: VC-aware (Version Control), whereby a VCS repository is considered a project; and EDE (EDE). This is expected to be extended in the future to support additional types of projects. Which files do or don't belong to a project is also determined by the project back-end. For example, the VC-aware back-end doesn't consider ``ignored'' files (VC Ignore) to be part of the project. Also, the VC-aware Project back-end considers ``untracked'' files by default. That behavior is controllable with the variable project-vc-include-untracked. @defopt project-mode-line If this user option is non-nil, Emacs displays the name of the current project (if any) on the mode line; clicking mouse-1 on the project name pops up the menu with the project-related commands. The default value is nil. @end defopt