C BS C-BackSpace 誤作動防止 EmacsでよくC-BackSpaceが暴発し
てしまう
(backward-kill-word)

関連記事

1. C-BackSpaceで文字が消えすぎる?

macOSでEmacs(emacs-plus)を使っていると、うっかりC-BackSpaceを押してしまい、想定以上に文字が消えることがあります(分割キーボード上で、BackSpaceがHの隣にあるので)。

通常のBackSpaceとして扱う 解決策:1文字削除に変更 global-set-key で delete-backward-char (global-set-key (kbd “C-<backspace>”) #’delete-backward-char) killが発生しない kill-ringがクリーン 誤作動防止 1文字ずつ安全に削除

これは、C-BackSpaceが、backward-kill-wordに割り当てられていたからでした1
とくに、単語単位で消えるだけでなく、kill-ringまで汚れてしまうので、あとでyankしたときにちょっと困ります2

そこで、「最初からBackSpaceとして解釈させる」ほうが安全ではないか、と思いました。
init.elのkey-translation-mapを使い、C-DELをDELに変換しました。

;; C-DELで backward-kill-word を使わない(誤作動防止)
(when (eq system-type 'darwin)
    (global-set-key (kbd "C-<backspace>") #'delete-backward-char)
     ;; 保険
    (global-set-key (kbd "C-DEL") #'delete-backward-char))Code language: PHP (php)

これでC-BackSpaceを押しても、1文字削除になるだけです。
killは発生せず、kill-ringも汚れません。
もちろん、単語削除を多用する人には向かないかもしれません。

  1. Emacsではbackward-kill-word(M-DEL)とbackward-kill-sentence(C-x DEL)など、複数のkillコマンドが存在します。これらはすべてkill-ringに保存されるため、yankで復元可能です。 – GNU Emacs Manual: Deletion and Killing
  2. kill-ringは削除したテキストの履歴を保持する仕組みです。C-yでyank(貼り付け)後、M-yで履歴を遡ることができますが、意図しない削除が混入すると操作が煩雑になります。 – GNU Emacs Manual: Yanking