doomemacs/modules/completion/selectrum
2021-07-25 02:49:41 +03:00
..
autoload selectrum: improve ivy parity 2021-07-25 02:49:41 +03:00
config.el selectrum: use orderless by default 2021-07-25 02:49:41 +03:00
packages.el selectrum: use orderless by default 2021-07-25 02:49:41 +03:00
README.org selectrum: use orderless by default 2021-07-25 02:49:41 +03:00
TODO.org selectrum: improve file category commands... 2021-07-25 02:49:41 +03:00

completion/selectrum

Description

This module provides Selectrum integration for a variety of Emacs commands, as well as a unified interface for project search and replace, powered by ripgrep.

TODO

Module Flags

  • +prescient Enables prescient filtering and sorting for Selectrum searches instead of orderless.

Plugins

selectrum consult embark embark-consult marginalia orderless (unless +prescient) prescient (+prescient) consult-flycheck (:checkers syntax)

Prerequisites

This module has no prerequisites.

Features

Selectrum and friends modify and use the built-in completing-read function, used by any function that requires completion. Due to this the full scope of these packages is too large to cover here, so we will detail Doom-specific additions:

Jump-to navigation

This module provides an interface to navigate within a project using projectile:

https://assets.doomemacs.org/completion/selectrum/projectile.png

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 provides interactive text search and replace using ripgrep.

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

https://assets.doomemacs.org/completion/selectrum/search.png

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.


These keybindings are available while a search is active:

Keybind Description
C-o Open an embark-act menu to chose a useful action
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).

https://assets.doomemacs.org/completion/selectrum/search-replace.png

TODO In-buffer searching

The swiper package provides an interactive buffer search powered by ivy. It can be invoked with:

  • SPC s s (swiper-isearch)
  • SPC s S (swiper-isearch-thing-at-point)
  • SPC s b (consult-line)
  • :sw[iper] [QUERY]

https://assets.doomemacs.org/completion/selectrum/buffer-search.png

A wgrep buffer can be opened from swiper with C-c C-e.

Selectrum integration for various completing commands

General

Keybind Description
M-x, SPC : Enhanced M-x
SPC ' Resume last Selectrum 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)