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,
private/<user-login-name>/config.elis loaded automatically, after all other modules. Keeping:private <user-login-name>in init.el is harmless, but does nothing.private/<user-login-name>/init.elis loaded before all modules.- 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
))