diff options
-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) |