Update lisp state key bindings
Some commands do not auto switch to lisp state anymore (i.e. eval commands, test and goto commands, etc...)
This commit is contained in:
parent
22930c3d33
commit
879bd52df9
|
@ -108,7 +108,9 @@
|
|||
- [Commenting](#commenting)
|
||||
- [Deleting files](#deleting-files)
|
||||
- [Editing Lisp code](#editing-lisp-code)
|
||||
- [Commands:](#commands)
|
||||
- [Lisp state Key Bindings](#lisp-state-key-bindings)
|
||||
- [Lisp state Auto-switch commands](#lisp-state-auto-switch-commands)
|
||||
- [Lisp state Other commands](#lisp-state-other-commands)
|
||||
- [Project management](#project-management)
|
||||
- [Registers](#registers)
|
||||
- [Errors handling](#errors-handling)
|
||||
|
@ -1625,8 +1627,9 @@ to `nil` in your `~/.spacemacs`.
|
|||
|
||||
Edition of lisp code is provided by [evil-lisp-state][].
|
||||
|
||||
Every commands below will set the current state to `lisp state` where
|
||||
the commands can be repeated without pressing on <kbd>SPC m</kbd>.
|
||||
Some commands will set the current state to `lisp state` where
|
||||
different commands combo can be repeated without pressing on
|
||||
<kbd>SPC m</kbd>.
|
||||
|
||||
When in `lisp state` the color of the mode-line changes to pink.
|
||||
|
||||
|
@ -1634,10 +1637,15 @@ Examples:
|
|||
- to slurp three times while in normal state: <kbd>SPC m 3 n</kbd>
|
||||
- to wrap a symbol in parenthesis then slurping two times: <kbd>SPC m w 2 n</kbd>
|
||||
|
||||
### Commands:
|
||||
#### Lisp state Key Bindings
|
||||
|
||||
##### Lisp state Auto-switch commands
|
||||
|
||||
These commands switch to `lisp state`.
|
||||
|
||||
Key Binding | Function
|
||||
---------------------|------------------------------------------------------------
|
||||
<kbd>SPC</kbd> | evil leader
|
||||
<kbd>SPC m %</kbd> | evil jump item
|
||||
<kbd>SPC m :</kbd> | ex command
|
||||
<kbd>SPC m (</kbd> | insert expression before (same level as current one)
|
||||
|
@ -1645,14 +1653,10 @@ Key Binding | Function
|
|||
<kbd>SPC m $</kbd> | go to the end of current sexp
|
||||
<kbd>SPC m 0</kbd> | go to the beginning of current sexp
|
||||
<kbd>SPC m a</kbd> | absorb expression
|
||||
<kbd>SPC m A</kbd> | transpose expression
|
||||
<kbd>SPC m b</kbd> | forward barf expression
|
||||
<kbd>SPC m B</kbd> | backward barf expression
|
||||
<kbd>SPC m c</kbd> | convolute expression
|
||||
<kbd>SPC m d</kbd> | describe elisp thing at point (show documentation)
|
||||
<kbd>SPC m e $</kbd> | go to end of line and evaluate last sexp
|
||||
<kbd>SPC m e e</kbd> | evaluate last sexp
|
||||
<kbd>SPC m e f</kbd> | evaluate current defun
|
||||
<kbd>SPC m g</kbd> | go to definition
|
||||
<kbd>SPC m h</kbd> | backward char
|
||||
<kbd>SPC m H</kbd> | previous symbol
|
||||
<kbd>SPC m i</kbd> | switch to `insert state`
|
||||
|
@ -1671,9 +1675,6 @@ Key Binding | Function
|
|||
<kbd>SPC m q</kbd> | unwrap current expression and kill all symbols after point
|
||||
<kbd>SPC m Q</kbd> | unwrap current expression and kill all symbols before point
|
||||
<kbd>SPC m r</kbd> | raise expression (replace parent expression by current one)
|
||||
<kbd>SPC m t b</kbd> | execute buffer tests
|
||||
<kbd>SPC m t q</kbd> | ask for test function to execute
|
||||
<kbd>SPC m T</kbd> | transpose expression
|
||||
<kbd>SPC m u</kbd> | undo
|
||||
<kbd>SPC m C-r</kbd> | redo
|
||||
<kbd>SPC m v</kbd> | switch to `visual state`
|
||||
|
@ -1686,6 +1687,20 @@ Key Binding | Function
|
|||
<kbd>SPC m xx</kbd> | delete expression
|
||||
<kbd>SPC m y</kbd> | copy expression
|
||||
|
||||
##### Lisp state Other commands
|
||||
|
||||
These command does not change the current state.
|
||||
|
||||
Key Binding | Function
|
||||
---------------------|------------------------------------------------------------
|
||||
<kbd>SPC m e $</kbd> | go to end of line and evaluate last sexp
|
||||
<kbd>SPC m e e</kbd> | evaluate last sexp
|
||||
<kbd>SPC m e f</kbd> | evaluate current defun
|
||||
<kbd>SPC m d d</kbd> | describe elisp thing at point (show documentation)
|
||||
<kbd>SPC m g g</kbd> | go to definition
|
||||
<kbd>SPC m t b</kbd> | execute buffer tests
|
||||
<kbd>SPC m t q</kbd> | ask for test function to execute
|
||||
|
||||
## Project management
|
||||
|
||||
Projects in `Spacemacs` are managed with [projectile][projectile]. In
|
||||
|
|
|
@ -44,7 +44,8 @@ both `evil`, `evil-leader` and `smartparens` to be installed.
|
|||
|
||||
To execute a command while in normal state, the evil-leader is used.
|
||||
By default, the prefix for each command is `<leader> m`.
|
||||
Each command when executed set the current state to `lisp state`.
|
||||
|
||||
Some commands when executed set the current state to `lisp state`.
|
||||
|
||||
Examples:
|
||||
|
||||
|
@ -56,7 +57,11 @@ Examples:
|
|||
|
||||
<leader> m w 2 n
|
||||
|
||||
## Commands and key bindings
|
||||
## Key Bindings
|
||||
|
||||
### Auto-switch commands
|
||||
|
||||
These commands switch to `lisp state`.
|
||||
|
||||
Key Binding | Function
|
||||
----------------------------|------------------------------------------------------------
|
||||
|
@ -68,14 +73,10 @@ Key Binding | Function
|
|||
<kbd>\<leader\> m $</kbd> | go to the end of current sexp
|
||||
<kbd>\<leader\> m 0</kbd> | go to the beginning of current sexp
|
||||
<kbd>\<leader\> m a</kbd> | absorb expression
|
||||
<kbd>\<leader\> m A</kbd> | transpose expression
|
||||
<kbd>\<leader\> m b</kbd> | forward barf expression
|
||||
<kbd>\<leader\> m B</kbd> | backward barf expression
|
||||
<kbd>\<leader\> m c</kbd> | convolute expression
|
||||
<kbd>\<leader\> m d</kbd> | describe elisp thing at point (show documentation)
|
||||
<kbd>\<leader\> m e $</kbd> | go to end of line and evaluate last sexp
|
||||
<kbd>\<leader\> m e e</kbd> | evaluate last sexp
|
||||
<kbd>\<leader\> m e f</kbd> | evaluate current defun
|
||||
<kbd>\<leader\> m g</kbd> | go to definition
|
||||
<kbd>\<leader\> m h</kbd> | backward char
|
||||
<kbd>\<leader\> m H</kbd> | previous symbol
|
||||
<kbd>\<leader\> m i</kbd> | switch to `insert state`
|
||||
|
@ -94,9 +95,6 @@ Key Binding | Function
|
|||
<kbd>\<leader\> m q</kbd> | unwrap current expression and kill all symbols after point
|
||||
<kbd>\<leader\> m Q</kbd> | unwrap current expression and kill all symbols before point
|
||||
<kbd>\<leader\> m r</kbd> | raise expression (replace parent expression by current one)
|
||||
<kbd>\<leader\> m t b</kbd> | execute buffer tests
|
||||
<kbd>\<leader\> m t q</kbd> | ask for test function to execute
|
||||
<kbd>\<leader\> m T</kbd> | transpose expression
|
||||
<kbd>\<leader\> m u</kbd> | undo
|
||||
<kbd>\<leader\> m C-r</kbd> | redo
|
||||
<kbd>\<leader\> m v</kbd> | switch to `visual state`
|
||||
|
@ -109,6 +107,20 @@ Key Binding | Function
|
|||
<kbd>\<leader\> m xx</kbd> | delete expression
|
||||
<kbd>\<leader\> m y</kbd> | copy expression
|
||||
|
||||
### Other commands
|
||||
|
||||
These command does not change the current state.
|
||||
|
||||
Key Binding | Function
|
||||
----------------------------|------------------------------------------------------------
|
||||
<kbd>\<leader\> m e $</kbd> | go to end of line and evaluate last sexp
|
||||
<kbd>\<leader\> m e e</kbd> | evaluate last sexp
|
||||
<kbd>\<leader\> m e f</kbd> | evaluate current defun
|
||||
<kbd>\<leader\> m d d</kbd> | describe elisp thing at point (show documentation)
|
||||
<kbd>\<leader\> m g g</kbd> | go to definition
|
||||
<kbd>\<leader\> m t b</kbd> | execute buffer tests
|
||||
<kbd>\<leader\> m t q</kbd> | ask for test function to execute
|
||||
|
||||
## Configuration
|
||||
|
||||
Key bindings are set only for `emacs-lisp-mode` by default.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
|
||||
;; Keywords: convenience editing evil smartparens lisp mnemonic
|
||||
;; Created: 9 Oct 2014
|
||||
;; Version: 6.1
|
||||
;; Version: 6.2
|
||||
;; Package-Requires: ((evil "1.0.9") (evil-leader "0.4.3") (smartparens "1.6.1"))
|
||||
;; URL: https://github.com/syl20bnr/evil-lisp-state
|
||||
|
||||
|
@ -34,14 +34,17 @@
|
|||
|
||||
;; To execute a command while in normal state, the evil-leader is used.
|
||||
;; By default, the prefix for each command is `<leader> m`.
|
||||
;; Each command when executed set the current state to `lisp state`.
|
||||
;; Some commands when executed set the current state to `lisp state`.
|
||||
|
||||
;; By example, to slurp three times while in normal state:
|
||||
;; <leader> m 3 n
|
||||
;; Or to wrap a symbol in parenthesis then slurping two times:
|
||||
;; <leader> m w 2 n
|
||||
|
||||
;; Commands and key bindings:
|
||||
;; --------------------------
|
||||
;; Auto-switch to lisp state commands:
|
||||
;; ----------------------------------
|
||||
|
||||
;; These commands switch the current state to `lisp state'.
|
||||
|
||||
;; Key Binding | Function
|
||||
;; ---------------|------------------------------------------------------------
|
||||
|
@ -53,14 +56,10 @@
|
|||
;; `leader m $' | go to the end of current sexp
|
||||
;; `leader m 0' | go to the beginning of current sexp
|
||||
;; `leader m a' | absorb expression
|
||||
;; `leader m A' | transpose expression
|
||||
;; `leader m b' | forward barf expression
|
||||
;; `leader m B' | backward barf expression
|
||||
;; `leader m c' | convolute expression
|
||||
;; `leader m d' | describe elisp thing at point (show documentation)
|
||||
;; `leader m e $' | go to end of line and evaluate last sexp
|
||||
;; `leader m e e' | evaluate last sexp
|
||||
;; `leader m e f' | evaluate current defun
|
||||
;; `leader m g' | go to definition
|
||||
;; `leader m h' | backward char
|
||||
;; `leader m H' | previous symbol
|
||||
;; `leader m i' | switch to `insert state`
|
||||
|
@ -76,12 +75,9 @@
|
|||
;; `leader m N' | backward slurp expression
|
||||
;; `leader m p' | paste after
|
||||
;; `leader m P' | paste before
|
||||
;; `leader m q' | unwrap current expression and kill all symbols after point
|
||||
;; `leader m Q' | unwrap current expression and kill all symbols before point
|
||||
;; `leader m q' | (splice) unwrap current expression and kill all symbols after point
|
||||
;; `leader m Q' | (splice) unwrap current expression and kill all symbols before point
|
||||
;; `leader m r' | raise expression (replace parent expression by current one)
|
||||
;; `leader m t b' | execute buffer tests
|
||||
;; `leader m t q' | ask for test function to execute
|
||||
;; `leader m T' | transpose expression
|
||||
;; `leader m u' | undo
|
||||
;; `leader m C-r' | redo
|
||||
;; `leader m v' | switch to `visual state`
|
||||
|
@ -94,6 +90,21 @@
|
|||
;; `leader m xx' | delete expression
|
||||
;; `leader m y' | copy expression
|
||||
|
||||
;; Other commands:
|
||||
;; ---------------
|
||||
|
||||
;; These commands don't change the current state.
|
||||
|
||||
;; Key Binding | Function
|
||||
;; ---------------|------------------------------------------------------------
|
||||
;; `leader m e $' | go to end of line and evaluate last sexp
|
||||
;; `leader m e e' | evaluate last sexp
|
||||
;; `leader m e f' | evaluate current defun
|
||||
;; `leader m d d' | describe elisp thing at point (show documentation)
|
||||
;; `leader m g g' | go to definition
|
||||
;; `leader m t b' | execute buffer tests
|
||||
;; `leader m t q' | ask for test function to execute
|
||||
|
||||
;; Configuration:
|
||||
;; --------------
|
||||
|
||||
|
@ -160,14 +171,20 @@
|
|||
|
||||
;; escape
|
||||
(define-key evil-lisp-state-map [escape] 'evil-normal-state)
|
||||
|
||||
;; toggle lisp state
|
||||
(define-key evil-lisp-state-map ",," 'lisp-state-toggle-lisp-state)
|
||||
(dolist (mm evil-lisp-state-major-modes)
|
||||
(evil-leader/set-key-for-mode mm "m," 'lisp-state-toggle-lisp-state))
|
||||
|
||||
;; leader
|
||||
(define-key evil-lisp-state-map (kbd evil-leader/leader) evil-leader--default-map)
|
||||
;; commands that wont switch to lisp state
|
||||
(dolist (mm evil-lisp-state-major-modes)
|
||||
(evil-leader/set-key-for-mode mm "me$" 'lisp-state-eval-sexp-end-of-line)
|
||||
(evil-leader/set-key-for-mode mm "mee" 'eval-last-sexp)
|
||||
(evil-leader/set-key-for-mode mm "mef" 'eval-defun)
|
||||
(evil-leader/set-key-for-mode mm "mgg" 'elisp-slime-nav-find-elisp-thing-at-point)
|
||||
(evil-leader/set-key-for-mode mm "mhd" 'elisp-slime-nav-describe-elisp-thing-at-point)
|
||||
(evil-leader/set-key-for-mode mm "m," 'lisp-state-toggle-lisp-state)
|
||||
(evil-leader/set-key-for-mode mm "mtb" 'spacemacs/ert-run-tests-buffer)
|
||||
(evil-leader/set-key-for-mode mm "mtq" 'ert))
|
||||
|
||||
;; auto-switch to lisp state commands
|
||||
(defconst evil-lisp-state-commands
|
||||
|
@ -187,14 +204,10 @@
|
|||
("8" . digit-argument)
|
||||
("9" . digit-argument)
|
||||
("a" . sp-absorb-sexp)
|
||||
("A" . sp-transpose-sexp)
|
||||
("b" . sp-forward-barf-sexp)
|
||||
("B" . sp-backward-barf-sexp)
|
||||
("c" . sp-convolute-sexp)
|
||||
("d" . elisp-slime-nav-describe-elisp-thing-at-point)
|
||||
("e$" . lisp-state-eval-sexp-end-of-line)
|
||||
("ee" . eval-last-sexp)
|
||||
("ef" . eval-defun)
|
||||
("g" . elisp-slime-nav-find-elisp-thing-at-point)
|
||||
("h" . evil-backward-char)
|
||||
("H" . sp-backward-symbol)
|
||||
("i" . evil-insert-state)
|
||||
|
@ -213,9 +226,6 @@
|
|||
("q" . sp-splice-sexp-killing-forward)
|
||||
("Q" . sp-splice-sexp-killing-backward)
|
||||
("r" . sp-raise-sexp)
|
||||
("tb" . spacemacs/ert-run-tests-buffer)
|
||||
("tq" . ert)
|
||||
("T" . sp-transpose-sexp)
|
||||
("u" . undo-tree-undo)
|
||||
("C-r" . undo-tree-redo)
|
||||
("v" . evil-visual-char)
|
||||
|
|
Loading…
Reference in a new issue