Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bbatsov/helm-projectile
Helm UI for Projectile
https://github.com/bbatsov/helm-projectile
emacs helm projectile
Last synced: about 1 month ago
JSON representation
Helm UI for Projectile
- Host: GitHub
- URL: https://github.com/bbatsov/helm-projectile
- Owner: bbatsov
- Created: 2015-12-20T10:07:07.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-10-23T14:25:42.000Z (about 1 year ago)
- Last Synced: 2024-05-01T22:00:58.307Z (7 months ago)
- Topics: emacs, helm, projectile
- Language: Emacs Lisp
- Size: 345 KB
- Stars: 322
- Watchers: 11
- Forks: 72
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- awesome-starred - helm-projectile - Helm UI for Projectile (Emacs Lisp)
README
[![License GPL 3][badge-license]](http://www.gnu.org/licenses/gpl-3.0.txt)
[![MELPA](http://melpa.org/packages/helm-projectile-badge.svg)](http://melpa.org/#/helm-projectile)
[![MELPA Stable](http://stable.melpa.org/packages/helm-projectile-badge.svg)](http://stable.melpa.org/#/helm-projectile)
[![Patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/bbatsov)## Helm Projectile
[Projectile](https://github.com/bbatsov/projectile) can be integrated
with [Helm](https://github.com/emacs-helm/helm) via
`helm-source-projectile-projects`,
`helm-source-projectile-files-list`,
`helm-source-projectile-buffers-list` and
`helm-source-projectile-recentf-list` sources (available in
`helm-projectile.el`). There is also an example function for calling
Helm with the Projectile file source. You can call it like this:```
M-x helm-projectile
```or even better - invoke the key binding h in Projectile's
keymap. Assuming you've opted for one of the recommended keymap prefixes (`C-c p`
or `s-p`), that would mean C-c p h or s-p h.See Projectile's [installation docs](https://docs.projectile.mx/projectile/installation.html#installation-via-package-el) for more details.
## Installation
The recommended way to install helm-projectile is via `package.el`.
### package.el
#### MELPA
You can install a snapshot version of helm-projectile from the
[MELPA](http://melpa.org) repository. The version of
Projectile there will always be up-to-date, but it might be unstable
(albeit rarely).#### MELPA Stable
You can install the last stable version of helm-projectile from the
[MELPA Stable](http://stable.melpa.org) repository.### el-get
helm-projectile is also available for installation from the
[el-get](https://github.com/dimitri/el-get) package manager.### Emacs Prelude
helm-projectile is naturally part of the
[Emacs Prelude](https://github.com/bbatsov/prelude). If you're a Prelude
user - helm-projectile is already properly configured and ready for
action.### Debian and Ubuntu
Users of Debian 9 or later or Ubuntu 16.04 or later may `apt
install elpa-helm-projectile`.## Usage
For those who prefer helm to ido/ivy, the command `helm-projectile-switch-project`
can be used to replace `projectile-switch-project` to switch project. Please
note that this is different from simply setting `projectile-completion-system`
to `helm`, which just enables projectile to use the Helm completion to complete
a project name. The benefit of using `helm-projectile-switch-project` is that on
any selected project we can fire many actions, not limited to just the "switch
to project" action, as in the case of using helm completion by setting
`projectile-completion-system` to `helm`. Currently, there are five actions:
"Switch to project", "Open Dired in project's directory", "Open project root in
vc-dir or magit", "Switch to Eshell" and "Grep project files". We will add more
and more actions in the future.`helm-projectile` is capable of opening multiple files by marking the files with
C-SPC or mark all files with M-a. Then, press RET,
all the selected files will be opened.Note that the helm grep is different from `projectile-grep` because the helm
grep is incremental. To use it, select your projects (select multiple projects
by pressing C-SPC), press "C-s" (or "C-u C-s" for recursive grep), and type your
regexp. As you type the regexp in the mini buffer, the live grep results are
displayed incrementally.`helm-projectile` also provides Helm versions of common Projectile commands. Currently,
these are the supported commands:* `helm-projectile-switch-project`
* `helm-projectile-find-file`
* `helm-projectile-find-file-in-known-projects`
* `helm-projectile-find-file-dwim`
* `helm-projectile-find-dir`
* `helm-projectile-recentf`
* `helm-projectile-switch-to-buffer`
* `helm-projectile-grep` (can be used for both grep or ack)
* `helm-projectile-ag`
* `helm-projectile-rg`
* Replace Helm equivalent commands in `projectile-commander`
* A virtual directory manager that is unique to Helm ProjectileWhy should you use these commands compared with the normal Projectile
commands, even if the normal commands use `helm` as
`projectile-completion-system`? The answer is, Helm specific commands
give more useful features. For example,
`helm-projectile-switch-project` allows opening a project in Dired,
Magit or Eshell. `helm-projectile-find-file` reuses actions in
`helm-find-files` (which is plenty) and able to open multiple
files. Another reason is that in a large source tree, helm-projectile
could be slow because it has to open all available sources.If you want to use these commands, you have to activate it to replace
the normal Projectile commands:```el
;; (setq helm-projectile-fuzzy-match nil)
(require 'helm-projectile)
(helm-projectile-on)
```If you already activate helm-projectile key bindings and you don't
like it, you can turn it off and use the normal Projectile bindings
with command `helm-projectile-off`. Similarly, if you want to disable
fuzzy matching in Helm Projectile (it is enabled by default), you must
set `helm-projectile-fuzzy-match` to nil before loading
`helm-projectile`.To fully learn Helm Projectile and see what it is capable of, you
should refer to this guide:
[Exploring large projects with Projectile and Helm Projectile](http://tuhdo.github.io/helm-projectile.html).Obviously you need to have Helm installed for this to work. :-)
![Helm-Projectile Screenshot](screenshots/helm-projectile.png)
## Project Status
The project is currently looking for more maintainers. I (Bozhidar) don't use Helm myself and
don't have much time for the project, so I would definitely appreciate some help with it.Contact me via e-mail or twitter if you'd like to become a co-maintainer.
## Known issues
Check out the project's
[issue list](https://github.com/bbatsov/helm-projectile/issues?sort=created&direction=desc&state=open)
a list of unresolved issues. By the way - feel free to fix any of them
and sent me a pull request. :-)## Contributors
Here's a [list](https://github.com/bbatsov/helm-projectile/contributors) of all the people who have contributed to the
development of Projectile.## Changelog
A fairly extensive changelog is available [here](CHANGELOG.md).
**Note:** We started keeping track of changes there after version 1.0.
## License
Copyright © 2011-2020 Bozhidar Batsov and
[contributors](https://github.com/bbatsov/helm-projectile/contributors).Distributed under the GNU General Public License, version 3
[badge-license]: https://img.shields.io/badge/license-GPLv3-blue.svg