とにかく書く

日々の雑感や知り得たことを、とにかく書いています

カーソル位置にある単語をまるごと削除する

emacs はデフォルトで M-d に kill-word がバインドされている(と思う。)kill-word は、カーソル位置から単語の終わりまでを削除する。だから、たとえば hoge の 'g' の位置にカーソルがある時に M-d を押すと、ho だけが残って ge が削除される。だけど、カーソル位置にある単語全部、この例だと hoge 全部を削除したい!と思ったので書いてみた。

(defun kill-word-at-point ()
  "kill the word under the cursol"
  (interactive)
  (let ((ptn "a-zA-Z0-9_\-"))
    (kill-region (progn (skip-chars-backward ptn) (point))
                 (progn (skip-chars-forward ptn) (point)))))
(global-set-key "\M-d" 'kill-word-at-point)