summaryrefslogtreecommitdiff
path: root/.emacs.d/init.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r--.emacs.d/init.el11
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)