#+title: :editor lispy #+subtitle: Vim for lisp, for people who don't like vim #+created: October 27, 2018 #+since: 2.0.0 * 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: - Common Lisp - Emacs Lisp - Scheme - Racket - [[http://docs.hylang.org/en/stable/][Hy]] - [[http://lfe.io/][LFE]] - Clojure - [[https://fennel-lang.org][Fennel]] ** Maintainers *This module needs a maintainer.* [[doom-contrib-maintainer:][Become a maintainer?]] ** Module flags /This module has no flags./ ** Packages - [[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./ * TODO Usage #+begin_quote 󱌣 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]] #+end_quote 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 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