Elisp - 满足错误时停止的功能

时间:2014-09-14 09:31:16

标签: emacs elisp

我有以下代码片段:

(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时,该函数在下一行后停止,从而杀死该行而不将其拉回。

我知道我可以通过检查行号等来解决这个问题,但我想知道是否可以忽略错误并继续执行该函数。

2 个答案:

答案 0 :(得分:4)

我认为用

替换(next-line)
(ignore-errors (next-line))

应该这样做。

答案 1 :(得分:1)

要指出的是,有一个现成的函数,C-x C-t,虽然它不记得换位后的点位置。