Emacsを使っている時「この行を複製してちょっと改変」ということが多いので、こんな関数を作って使っている。
emacs.d/init.el
(defun duplicate-line (&optional p)
"カーソルのある行を二重化します。
前置引数や引数があると、カーソル行以下n行を二重化します。"
(interactive "p")
(let ((orgp (point))(kill-whole-line t))
(beginning-of-line)
(if p
(kill-line p) (kill-line))
(yank)
(yank)
(goto-char orgp)))
(if window-system
(global-set-key "\C-z" 'duplicate-line))
C-z
で当該行をすぐ下に複製する。C-u C-z
で4行複製する。
killバッファを潰してしまうのがちょっと難点である。windowsシステムでない時にC-zを押してsuspendさせるのはご愛嬌ということで。