Gibt es eine bessere Alternative zu dieser Funktion, mit der ich Parens in einer Region entferne? Ich suche nach einem eingebauten Emacs oder etwas Besserem, das alle Paare in der ausgewählten Region entfernt (z. B. Klammern, geschweifte Klammern, doppelte Anführungszeichen, einfache Anführungszeichen).
(defun my-delete-surrounded-parens ()
(interactive)
;; save where region begins & ends
(let ((beginning (region-beginning))
(end (region-end)))
(cond ((not (eq (char-after beginning) ?\())
;; if region not begins by (, trigger error
(error "Char at region-begin not an open-parens"))
((not (eq (char-before end) ?\)))
;; if region not ends by ), trigger error
(error "Char at region-end not a close-parens"))
;; save mark, pt, current buffer & execute body
((save-excursion
(goto-char beginning)
(forward-sexp)
(not (eq (point) end)))
;; if parens are not balanced, trigger error
(error "parens not balanced"))
(t (save-excursion
(goto-char end)
(delete-char -1)
(goto-char beginning)
(delete-char 1))))))
quelle