空行を1行開けるときに便利なElisp

こうする。

;; https://emacsredux.com/blog/2013/06/15/open-line-above/
(defun smart-open-line ()
  "Insert an empty line after the current line.
Position the cursor at its beginning, according to the current mode."
  (interactive)
  (move-end-of-line nil)
  (newline-and-indent))
(defun smart-open-line-above ()
  "Insert an empty line above the current line.
Position the cursor at it's beginning, according to the current mode."
  (interactive)
  (move-beginning-of-line nil)
  (newline-and-indent)
  (forward-line -1)
  (indent-according-to-mode))

C-o はカーソル位置を固定したまま、その位置に改行を1つ挿入する (open-line) 。

上記は smart-open-line が 空行をインデント付きで下方に挿入しつつ、カーソルも下方に移動する。 smart-open-line-above はその上方版である。なかなか便利である。

いっそのこと、キーバインドを上書きして、

(global-set-key (kbd "C-o") 'smart-open-line)
(global-set-key (kbd "M-o") 'smart-open-line-above)

のようにしてもよいだろう。

参考

emacsredux.com