diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2022-05-23 08:50:27 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2022-05-23 13:36:13 -0700 |
commit | d98b9c59dcaca13fad270f61ab95b21b12cc17ef (patch) | |
tree | 7d41bc14c72f64d6fa4b542751fffec646452744 | |
parent | 5eaaa08a8a6847cfb29de9fcd664f122713377a7 (diff) | |
download | dotfiles-d98b9c59dcaca13fad270f61ab95b21b12cc17ef.tar.gz |
fix M-a, M-e, M-k and C-x DEL in Lisp string literals
-rw-r--r-- | .emacs.d/init.el | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 7a633ac7..a86f700f 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -3202,6 +3202,17 @@ scroll through them." (t (backward-kill-sexp (abs arg))))) (define-key paredit-mode-map "\C-w" #'spw/paredit-unix-word-rubout) +;; Fix M-a, M-e, M-k and C-x DEL in Lisp string literals. +(defun spw/paredit-narrow-to-string (orig-fun &rest args) + (save-restriction + (when (and paredit-mode (paredit-in-string-p)) + (cl-destructuring-bind (beg . end) (paredit-string-start+end-points) + (narrow-to-region (1+ beg) end))) + (apply orig-fun args))) +(dolist (cmd '(backward-sentence forward-sentence + backward-kill-sentence kill-sentence)) + (advice-add cmd :around #'spw/paredit-narrow-to-string)) + (spw/reclaim-keys-from paredit paredit-mode-map "\M-r" "\M-s" "\M-?") (define-key paredit-mode-map "\M-R" #'paredit-raise-sexp) (define-key paredit-mode-map "\M-U" #'paredit-splice-sexp) |