在Elisp中,这种看似简单易用的代码并没有真正改变这一点。
(with-current-buffer "foo"
(goto-char (point-max)))
AFAIK with-current-buffer
不应该恢复目标缓冲区中的点。
如果没有,那么我如何操纵缓冲区中的点?
答案 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))