common-lisp: make `SPC m e` keys behave like in elisp

* Make `SPC m e e` (eval last sexp) work in normal evil mode.
 * Add `SPC m e l` - go to end of line and eval last sexp.
This commit is contained in:
Boris Avdeev 2015-10-26 12:51:41 +03:00 committed by syl20bnr
parent 619609c8d7
commit a6f8ebe94b
2 changed files with 21 additions and 7 deletions

View File

@ -66,13 +66,14 @@ As this state works the same for all files, the documentation is in global
*** Evaluation
| Key Binding | Description |
|-------------+---------------------------------|
| ~SPC m e b~ | Evaluate buffer |
| ~SPC m e e~ | Evaluate last expression |
| ~SPC m e f~ | Evaluate top level s-expression |
| ~SPC m e F~ | Undefine the function at point |
| ~SPC m e r~ | Evaluate region |
| Key Binding | Description |
|-------------+------------------------------------------|
| ~SPC m e b~ | Evaluate buffer |
| ~SPC m e e~ | Evaluate last sexp |
| ~SPC m e l~ | Go to end of line and evaluate last sexp |
| ~SPC m e f~ | Evaluate top level sexp |
| ~SPC m e F~ | Undefine the function at point |
| ~SPC m e r~ | Evaluate region |
*** REPL

View File

@ -66,6 +66,18 @@
:config
(progn
(slime-setup)
(defun slime-eval-sexp-end-of-line ()
(interactive)
(move-end-of-line 1)
(slime-eval-last-expression))
(defadvice slime-last-expression (around evil activate)
"In normal-state or motion-state, last sexp ends at point."
(if (and (not evil-move-beyond-eol)
(or (evil-normal-state-p) (evil-motion-state-p)))
(save-excursion
(unless (or (eobp) (eolp)) (forward-char))
ad-do-it)
ad-do-it))
;; TODO: Add bindings for the SLIME debugger?
(spacemacs/set-leader-keys-for-major-mode 'lisp-mode
"'" 'slime
@ -81,6 +93,7 @@
"ef" 'slime-eval-defun
"eF" 'slime-undefine-function
"ee" 'slime-eval-last-expression
"el" 'slime-eval-sexp-end-of-line
"er" 'slime-eval-region
"gb" 'slime-pop-find-definition-stack