組み込みの backward-kill-sexp
を使うことができます。
(global-set-key (kbd "M-DEL") 'backward-kill-sexp)
これにより、削除されたものをキルリングに追加するという望ましくない効果があります。
この問題を解決するには、以下を試してください:
(defun backward-delete-sexp (arg)
(interactive "P")
(delete-region (point)
(progn (backward-sexp arg) (point))))