Difference between revisions of "Projectile"
(add category) |
|||
Line 64: | Line 64: | ||
[[Category:Project Management]][[Category:Convenience]][[Category:Third Party Package]][[Category:Programming]] | [[Category:Project Management]][[Category:Convenience]][[Category:Third Party Package]][[Category:Programming]] | ||
[[Category:Search]] | [[Category:Search]] | ||
+ | [[Category:Intermediate]] |
Revision as of 09:27, 16 May 2017
Description | Project management library |
---|---|
Author | Bozhidar Batsov |
Maintainer | Bozhidar Batsov |
Source | https://github.com/bbatsov/projectile |
Projectile is a project interaction library for Emacs. Its goal is to provide a nice set of features operating on a project level without introducing external dependencies. For instance - finding project files is done in pure Emacs Lisp without the use of GNU find.
This library provides easy project management and navigation. The concept of a project is pretty basic - just a folder containing special file. Currently git, mercurial and bazaar repos are considered projects by default. If you want to mark a folder manually as a project just create an empty .projectile file in it. Some of projectile's features:
- jump to a file in project
- jump to a project buffer
- multi-occur in project buffers
- grep in project
- regenerate project etags
Basic setup
(add-to-list 'load-path "/path/to/projectile/directory")
(require 'projectile)
(projectile-global-mode) ;; to enable in all buffers
Helpful keybindings
- [C-c p f]
- Find a file in the project.
- [C-c p l]
- Find a file in a directory.
- [C-c p g]
- Find text matches in the project
Common Customization
Enable caching
Indexing a large project can take a while. You can enable caching to prevent additional reindexing.
(setq projectile-enable-caching t)
See Also
Nameframe - use one frame per project
nameframe provides utility functions to manage frames by their names.
Its primary goal is to be used with Projectile and/or perspective.el (see Buffer_management). When opening a Projectile project, it will either switch to an existing frame of the project, or create a new frame for the project.