Emacsに現在行や選択範囲を複製する機能を付けたら思いのほか作業効率が上がった - ブログのおんがえし
とても便利そうだったんだけど、数値プレフィックスの対応ができて
いなかったので、繰り返して行うために、数値プレフィックス
対応を追加してみました。(C-u 10等入力してから、この関数を実行する
ことで 10回繰り返して行うというようなことができます。)
元のコードベースだと、修正する箇所が増えてしまうので、
一つの関数にしました。
(defun duplicate-thing (n)
(interactive "p")
(save-excursion
(let (start end)
(cond (mark-active
(setq start (region-beginning) end (region-end)))
(t
(beginning-of-line)
(setq start (point))
(forward-line)
(setq end (point))))
(kill-ring-save start end)
(dotimes (i (or n 1))
(yank)))))
あと添削ってほどでもないですけど、行の移動に next-lineを使っていますが、
forward-lineを使った方がいいかなと思いました。next-lineはいろいろ凝った
ことをしているので単純に次の行へ移動したい場合は forward-lineの方が
いいです。行頭にも移動してくれるので、桁位置的にも安心です。