読者です 読者をやめる 読者になる 読者になる

カーソル以降の連続するスペースを削除する

emacs elisp

カーソル以降にある連続するスペースを削除したいことはわりとあります.
リージョンを選択してカットでもいいんですが, 一つのキーシーケンスで
やりたいなぁということで, 書いた Elispの紹介

その前に

今回の目的では使えますが, 目的次第では delete-word(M-d), just-one-spacef(M-SPC)が
使えるので, そちらも紹介します.

  # 目標(□がカーソル位置)
  apple   □                melon orange
  # これが
  apple   □melon orange <= こうなってほしい(カーソルは m)

  # M-dの場合
  apple    orange <= 次の単語まで消える

  # M-SPC(大抵の WMでは何かキーを割り当てているので ESC SPCになると思います)
  apple melon orange <= カーソル前にあるスペースまで消えてしまう.

単語の間のスペースも削除したいというのであれば, M-SPCでも十分です.
でも, カーソルの後ろだけっていうのがしたかったので自分で書きました.

(defun kill-following-spaces ()
  (interactive)
  (let ((orig-point (point)))
    (save-excursion
      (skip-chars-forward " \t")
      (delete-region orig-point (point)))))

(global-set-key (kbd "M-k") 'kill-following-spaces)

"M-k"は kill-sentenceにデフォルトでは割り当てられていますが, 使わないので
上書きしました. 文章を消すよりかは後続のスペースを消したいと思う方が個人的には
多いですね.