Recommendation

Lispy overrides some keys in insert mode if the cursor is immediately before ( or after ).

If you are proficient in Vim, maybe you don’t need this module.

Key Bindings

Movement: h j k l as usual, f to step into and b to move back in history

Slurp: > Barf: < Clone: c

Forward: ] Backward: [ Jump to matching pair: d

Split: M-j Join: +

Typing " inside of a string inserts \"\", so the split command is very useful for string templating.

Insert

Parens: ( Braces: { Brackets: } Quotes: "

LispyVille

The default key theme:

  :init
  (setq lispyville-key-theme
        '((operators normal)
          c-w
          (prettify insert)
          (atom-movement t)
          slurp/barf-lispy
          additional
          additional-insert))

Each (key-theme modes) is a pair of a LispyVille key theme and modes in which to bind them. For example, (escape insert) binds the “escape” theme in just the insert state. Without (), the default is to bind normal and visual states.

As described in https://github.com/abo-abo/lispy/issues/534, for arrow keys to work in xterm, M-O must be free from bindings in Emacs.

However, package lispyville binds both M-o and M-O keys to its functions with evil-define-key*. Unbind them with the following config.

(map! :after lispyville
      :map lispyville-mode-map
      :n "M-O" nil
      :n "M-o" nil)

Given the order Doom Emacs’ config gets loaded,

  1. private/<user-login-name>/config.el is loaded automatically, after all other modules. Keeping :private <user-login-name> in init.el is harmless, but does nothing.
  2. private/<user-login-name>/init.el is loaded before all modules.
  3. If your needs are simple, use after! to reconfigure packages.

we could also configure lispyville-key-theme in config.el, but remember to put it in at top-level, not within after!.

(setq lispyville-key-theme
      '((operators normal)
        c-w
        (prettify insert)
        (atom-movement t)
        slurp/barf-lispy
        additional
        ;; additional-insert ; disabled for tty
        ))

References