abo-abo/swiper@6a8e5611f3 -> abo-abo/swiper@1c6b3da377 company-mode/company-mode@4c08ef4686 -> company-mode/company-mode@8b58e5895c emacs-helm/helm@4fcb36f1b9 -> emacs-helm/helm@a246a9b278 ericdanan/counsel-projectile@06b03c1080 -> ericdanan/counsel-projectile@e30150792a lewang/flx@647cb2f92f -> lewang/flx@e3b3f0533e lewang/flx@647cb2f92f -> lewang/flx@e3b3f0533e minad/consult@85008702de -> minad/consult@cc8eff9578 oantolin/embark@725794f013 -> oantolin/embark@e08899ef2e raxod502/prescient.el@027c2137a8 -> raxod502/prescient.el@292ac9fe35 sebastiencs/company-box@156f65cfbf -> sebastiencs/company-box@f9cbbc7df8 tumashu/ivy-posframe@9c83828233 -> tumashu/ivy-posframe@5d9420252c tumashu/posframe@f97c4aff2c -> tumashu/posframe@3b1dc400d2 Fix: tumashu/ivy-posframe#114 Close: #5869 |
||
|---|---|---|
| .. | ||
| autoload | ||
| config.el | ||
| packages.el | ||
| README.org | ||
completion/helm
Description
This module provides Helm integration for a variety of Emacs commands, as well as a unified interface for project search and replace, powered by ripgrep.
I prefer ivy over ido for its flexibility. I prefer ivy over helm because it's lighter, simpler and faster in many cases.
Ivy is considered a first-class citizen in Doom, however it is still possible to use Helm if you so desire.
Module Flags
+fuzzyEnables fuzzy completion for Helm searches.+childframeCauses Helm to display in a floating child frame, above Emacs.+iconsEnables icons (supports bothall-the-iconsandtreemacsicons)
Plugins
- helm
- helm-rg
- helm-c-yasnippet
- helm-company
- helm-describe-modes
- helm-projectile
- helm-swiper
- helm-descbinds
- helm-flx* (
+fuzzy) - helm-posframe* (
+childframe) - helm-org* (
:lang org) - helm-icons* (
+icons)
Prerequisites
This module has no prerequisites.
Features
Much like Ivy, Helm is a large framework and as such covering everything is not in scope, however a number of Doom-specific features are shown below:
Jump-to navigation
Similar to Ivy, this module provides an interface to
navigate within a project using projectile:
| Keybind | Description |
|---|---|
SPC p f, SPC SPC |
Jump to file in project |
SPC f f, SPC . |
Jump to file from current directory |
SPC s i |
Jump to symbol in file |
Project search & replace
This module also provides interacetive text search and replace using ripgrep
Search
| Keybind | Description |
|---|---|
SPC s p |
Search project |
SPC s P |
Search another project |
SPC s d |
Search this directory |
SPC s D |
Search another directory |
Prefixing these keys with the universal argument (SPC u for evil users; C-u
otherwise) changes the behavior of these commands, instructing the underlying
search engine to include ignored files.
This module also provides Ex Commands for evil users:
| Ex command | Description |
|---|---|
:pg[rep][!] [QUERY] |
Search project (if !, include hidden files) |
:pg[rep]d[!] [QUERY] |
Search from current directory (if !, don't search recursively) |
The optional `!` is equivalent to the universal argument for the previous commands.
Replace
These keybindings are available while a search is active:
| Keybind | Description |
|---|---|
C-c C-o |
Open a buffer with your search results |
C-c C-e |
Open a writable buffer of your search results |
C-SPC |
Preview the current candidate |
C-RET |
Open the selected candidate in other-window |
Changes to the resulting wgrep buffer (opened by C-c C-e) can be committed
with C-c C-c and aborted with C-c C-k (alternatively ZZ and ZQ, for evil
users).
In-buffer searching
The swiper package provides an interactive buffer search powered by helm. It
can be invoked with:
SPC s s(swiper-isearch)SPC s S(swiper-isearch-thing-at-point)SPC s b(swiper):sw[iper] [QUERY]
A wgrep buffer can be opened from swiper with C-c C-e.
Helm integration for various completing commands
Helm also has a number of overrides for built-in functionality:
General
| Keybind | Description |
|---|---|
M-x, SPC : |
Smarter, smex-powered M-x |
SPC ' |
Resume last ivy session |
Jump to files, buffers or projects
| Keybind | Description |
|---|---|
SPC RET |
Find bookmark |
SPC f f, SPC . |
Browse from current directory |
SPC p f, SPC SPC |
Find file in project |
SPC f r |
Find recently opened file |
SPC p p |
Open another project |
SPC b b, SPC , |
Switch to buffer in current workspace |
SPC b B, SPC < |
Switch to buffer |
Search
| Keybind | Description |
|---|---|
SPC p t |
List all TODO/FIXMEs in project |
SPC s b |
Search the current buffer |
SPC s d |
Search this directory |
SPC s D |
Search another directory |
SPC s i |
Search for symbol in current buffer |
SPC s p |
Search project |
SPC s P |
Search another project |
SPC s s |
Search the current buffer (incrementally) |
Configuration
Icons
Icons are now included, and support 2 providers (all-the-icons and treemacs).
By default, to maintain consistency we use all-the-icons; however if you wish
to modify this you can do so using the below snippet:
(after! helm
(setq helm-icons-provider 'treemacs))