Esiste un'alternativa migliore a questa funzione che utilizzo per rimuovere le parentesi in una regione? Sto cercando un built-in Emacs, o qualcosa di meglio scritto, qualcosa che rimuoverà qualsiasi coppia intorno alla regione selezionata (es: parentesi, parentesi graffe, doppie virgolette, virgolette singole)
(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))))))