with-current-buffer不会移动点

时间:2013-02-06 03:26:15

标签: emacs elisp

在Elisp中,这种看似简单易用的代码并没有真正改变这一点。

(with-current-buffer "foo"
  (goto-char (point-max)))

AFAIK with-current-buffer不应该恢复目标缓冲区中的点。 如果没有,那么我如何操纵缓冲区中的点?

3 个答案:

答案 0 :(得分:6)

我认为你把缓冲区的观点与窗口点混淆了。如果要在显示“foo”的某个窗口中移动光标,则需要在执行goto-char时选择该窗口,否则需要使用set-window-point。通常,缓冲区有N + 1个点(一个是它自己的,N是用于显示缓冲区的N个窗口)。

答案 1 :(得分:1)

您可能必须使用switch-to-buffer然后切换回来。

答案 2 :(得分:0)

尝试做:

(set-buffer "foo")
(goto-char (point-max))