summaryrefslogtreecommitdiff
path: root/tw/home/files/emacs-init.el
diff options
context:
space:
mode:
Diffstat (limited to 'tw/home/files/emacs-init.el')
-rw-r--r--tw/home/files/emacs-init.el31
1 files changed, 29 insertions, 2 deletions
diff --git a/tw/home/files/emacs-init.el b/tw/home/files/emacs-init.el
index 56db4fa6..03255351 100644
--- a/tw/home/files/emacs-init.el
+++ b/tw/home/files/emacs-init.el
@@ -430,6 +430,28 @@ If CREATE is true and the resulting directory does not exist, create it."
(evil-define-key 'normal ledger-mode-map
(kbd "TAB") #'ledger-indent-line))
+(use-package lisp
+ :init (which-key-add-key-based-replacements
+ "<leader>k" '("sexp-nav" . "S-expression navigation"))
+ :bind (("<leader>kl" . forward-sexp)
+ ("<leader>kh" . backward-sexp)
+ ("<leader>kL" . forward-list)
+ ("<leader>kH" . backward-list)
+ ("<leader>kj" . down-list)
+ ("<leader>kk" . up-list)
+ ("<leader>kK" . backward-up-list)
+ ("<leader>kd" . kill-sexp)
+ ("<leader>kD" . backward-kill-sexp)
+ ("<leader>kb" . beginning-of-defun)
+ ("<leader>kB" . beginning-of-defun-comments)
+ ("<leader>ke" . end-of-defun)
+ ("<leader>kv" . mark-sexp)
+ ("<leader>kV" . mark-defun)
+ ("<leader>kN" . narrow-to-defun)
+ ("<leader>ks" . insert-pair)
+ ("<leader>kr" . raise-sexp)
+ ("<leader>kc" . check-parens)))
+
(defun tw/resize-repl-window ()
"Make the REPL window small, so it stays out of the way."
(shrink-window (- (window-height) 5)))
@@ -757,9 +779,14 @@ For use in `org-latex-classes'."
:commands (global-evil-surround-mode) :demand t
:config (global-evil-surround-mode +1))
-(use-package evil-smartparens
+(use-package smartparens ; required by evil-cleverparens
+ :custom
+ ;; (sp-sexp-prefix '() "Set up Guix gexp-related sexp prefixes.")
+ )
+
+(use-package evil-cleverparens
:after (evil smartparens)
- :hook smartparens-enabled-hook)
+ :hook ((lisp-mode lisp-data-mode scheme-mode) . evil-cleverparens-mode))
(use-package evil-multiedit
;; See: https://github.com/hlissner/evil-multiedit#usage