doomemacs/modules/editor/lispy/README.org

107 lines
3.4 KiB
Org Mode
Raw Normal View History

#+title: :editor lispy
#+subtitle: Vim for lisp, for people who don't like vim
#+created: October 27, 2018
#+since: 2.0.0
2018-10-27 16:44:12 -05:00
* Description :unfold:
This module adds a keybind scheme for navigating and editing S-expressions in
Lisps; including S-exp awareness for Evil users. This affects the following
languages:
2018-10-27 16:44:12 -05:00
- Common Lisp
- Emacs Lisp
- Scheme
- Racket
- [[http://docs.hylang.org/en/stable/][Hy]]
- [[http://lfe.io/][LFE]]
- Clojure
2021-05-04 16:24:25 -04:00
- [[https://fennel-lang.org][Fennel]]
2018-10-27 16:44:12 -05:00
** Maintainers
*This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
2022-09-26 02:19:42 +08:00
- [[doom-package:lispy]]
- [[doom-package:lispyville]] if [[doom-module::editor evil +everywhere]]
** Hacks
/No hacks documented for this module./
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
2018-10-27 16:44:12 -05:00
* TODO Usage
#+begin_quote
󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
2022-09-26 02:19:42 +08:00
If [[doom-module::editor evil]] is enabled, [[doom-package:lispyville]] would also be activated for every mode
where [[doom-package:lispy]] is active.
* TODO Configuration
#+begin_quote
󱌣 /This module's configuration documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
The default key themes that are set are as follows:
#+begin_src emacs-lisp
'((operators normal)
c-w
(prettify insert)
(atom-movement normal visual)
slurp/barf-lispy
additional
additional-insert)
#+end_src
2018-10-27 16:44:12 -05:00
To change the key themes set ~lispyville-key-theme~. Think of
~lispyville-key-theme~ as the equivalent of ~parinfer-extensions~. See
lispyville's [[https://github.com/noctuid/lispyville/blob/master/README.org][README]] for more info on the specific keybindings of each key theme
(starting [[https://github.com/noctuid/lispyville#operators-key-theme][here]]).
** Working with Brackets
By default, =[= and =]= are [[https://github.com/noctuid/lispyville/tree/master#additional-movement-key-theme][bound]] to =lispyville-previous-opening= and
=lispyville-next-closing= respectively. If you use a language which makes frequent
use of brackets (e.g. Clojure, Racket, Scheme), you can insert a bracket pair =[]=
by typing ={=. If you prefer to use the bracket keys for input, you can rebind
them like below:
#+begin_src emacs-lisp
;; in $DOOMDIR/config.el
(map! :after (lispy lispyville)
:map lispy-mode-map-lispy
;; unbind individual bracket keys
"[" nil
"]" nil
;; re-bind commands bound to bracket keys by default
"M-[" #'lispyville-previous-opening
"M-]" #'lispyville.next-opening)
#+end_src
* Troubleshooting
[[doom-report:][Report an issue?]]
** Mouse wheel and =wrap=/=additional-wrap= key themes in TTY Emacs ([[https://github.com/hlissner/doom-emacs/issues/2573][#2573]])
lispyville binds [[kbd:][M-[]] to ~lispyville-wrap-brackets~ when the =wrap= or
=additional-wrap= key themes are enabled. In terminal Emacs, this is the key
Emacs receives when you scroll with your mouse wheel.
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
󱌣 This module has no appendix yet. [[doom-contrib-module:][Write one?]]
#+end_quote