我有以下代码片段:
(defun my-move-line-below ()
(interactive)
(let ((point-from-start (- (point) (line-beginning-position))))
(kill-whole-line)
(next-line)
(move-beginning-of-line nil)
(yank)
(previous-line)
(goto-char (+ (line-beginning-position) point-from-start))))
它的作用是将当前行移动到下一行之下。它运行良好,但问题是当达到EOF时,该函数在下一行后停止,从而杀死该行而不将其拉回。
我知道我可以通过检查行号等来解决这个问题,但我想知道是否可以忽略错误并继续执行该函数。
答案 0 :(得分:4)
我认为用
替换(next-line)
(ignore-errors (next-line))
应该这样做。
答案 1 :(得分:1)
要指出的是,有一个现成的函数,C-x C-t
,虽然它不记得换位后的点位置。