Difference between revisions of "Projectile"

From WikEmacs
Jump to navigation Jump to search
(added a basic projectile page)
 
(add category)
 
(12 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
|name=Projectile
 
|name=Projectile
 
|description=Project management library
 
|description=Project management library
|maintainer=Bozhidar Batsov
+
|author=[[User:Bozhidar | Bozhidar Batsov]]
|source=https://github.com/bbatsov
+
|maintainer=[[User:Bozhidar | Bozhidar Batsov]]
 +
|source=https://github.com/bbatsov/projectile
 
}}
 
}}
  
Line 16: Line 17:
 
* regenerate project etags
 
* regenerate project etags
  
= Basic setup =
+
== Basic setup ==
  
 
<source lang="lisp">
 
<source lang="lisp">
Line 24: Line 25:
 
</source>
 
</source>
  
= Helpful keybindings =
+
== Helpful keybindings ==
  
; {{Keys|C-c p j}}
+
; {{Keys|C-c p f}}
: Jump to a file in the project.
+
: Find a file in the project.
  
; {{Keys|C-c p f}}
+
; {{Keys|C-c p l}}
 +
: Find a file in a directory.
 +
 
 +
; {{Keys|C-c p g}}
 
: Find text matches in the project
 
: Find text matches in the project
  
= Common Customization =
+
== Common Customization ==
 +
 
 +
=== Enable caching ===
 +
 
 +
Indexing a large project can take a while. You can enable caching to prevent additional reindexing.
 +
 
 +
<source lang="lisp">
 +
(setq projectile-enable-caching t)
 +
</source>
 +
 
 +
== See Also ==
 +
 
 +
* [[Helm]]
 +
* [[Find File in Project]]
 +
 
 +
=== Nameframe - use one frame per project ===
 +
 
 +
[https://github.com/john2x/nameframe nameframe] provides utility functions to manage frames by their names.
  
= See Also =
+
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.
  
= Project Pages =
+
== Project Pages ==
* [https://github.com/emacs-helm/helm GitHub Repo]
+
* [https://github.com/bbatsov/projectile GitHub Repo]
* [https://github.com/emacs-helm/helm/raw/master/doc/helm.pdf User's Guide]
 
  
= Tutorial Pages =
+
== Tutorial Pages ==
  
* [http://bc.tech.coop/blog/070711.html QuickSilver for Emacs: anything.el]
+
[[Category:Project Management]][[Category:Convenience]][[Category:Third Party Package]][[Category:Programming]]
* [http://metasandwich.com/2010/07/30/what-can-i-get-for-10-dolla-anything-el/ What can I get for 10 dolla? Anything.el.]
+
[[Category:Search]]
 +
[[Category:Intermediate]]
  
[[Category:Project Management]][[Category:Convenience]][[Category:Third Party Package]]
+
[[Category:Popular_Package]]

Latest revision as of 09:35, 16 May 2017

Projectile
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.

Project Pages

Tutorial Pages