Find file in project
Emacs Lisp
Switch branches/tags
Nothing to show
Pull request Compare This branch is 5 commits ahead, 157 commits behind technomancy:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Find file in project(FFIP)


FFIP makes it easy to find files in projects on which you're working on from within Emacs. FFIP determines the root of the project automatically based on the VCS(Version Control System) used in the project or the presence of "project files", such as .dir-locals.el, .emacs-project, etc.

Since .dir-locals.el support is part of Emacs by default you're encouraged to define your projects in terms of it or the project's VCS(or even both if you need some specific setting for the project only). The VCS supported by FFIP currently are - git, mercurial, bazaar, subversion, cvs and darcs.


My setup is tested only on Emacs 23.2(currently the latest stable Emacs version), so probably not everything will work on older Emacs versions.


Place the find-file-in-project.el somewhere on your Emacs load path.

(add-to-list 'load-path "~/.emacs.d/find-file-in-project") (autoload 'find-file-in-project "find-file-in-project" "Find file in project." t)


The find-file-in-project interactive function is where all the magic happens. You're advised to bind it to some global key combination.

(global-set-key (kbd "C-x C-M-f") 'find-file-in-project)


  • caching
  • make the project root discovery mechanism as generic as possible
  • enable some on-the-fly filtering options for project files
  • provide a wrapper around grep that's aware of the project's root