ELispの学習の一環として、現在行の下に現在行のコピーを作成する(行を複製する)関数を作成しようとしています。これまでのところ、バッファの最後の行を除いて、かなりうまく機能しています。最後の行にある場合、その行は行の下ではなく行の最後に貼り付けられます。
これが私のコードです:
(defun duplicate-line ()
"duplicate the current line"
(interactive)
(save-excursion
(kill-ring-save (line-beginning-position) (line-beginning-position 2))
(goto-char (line-beginning-position 2)) ; goto the start of the next line
(yank)
)
(next-line)
)
これを行うより良い方法はありますか?また、elisp の記述に関するその他のアドバイスもいただければ幸いです。