リージョンの周りの括弧を削除するために使用するこの関数のより良い代替手段はありますか?私はEmacsビルトイン、または選択された領域の周りのペアを削除するもの(例:大括弧、中括弧、二重引用符、単一引用符)を削除するものを探しています
(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))))))