在 Elisp 中,这种看似简单的代码和平实际上并没有改变重点。
(with-current-buffer "foo"
(goto-char (point-max)))
AFAIKwith-current-buffer
不应恢复目标缓冲区中的点。如果没有,那么我如何操作缓冲区中的点?
我认为您将缓冲区的点与窗口的点混淆了。如果要在某个显示“foo”的窗口中移动光标,则需要在执行 时选择该窗口goto-char
,否则需要使用set-window-point
. 一般来说,一个缓冲区有 N+1 个点(一个是它自己的,N 个用于显示缓冲区的 N 个窗口)。
您可能必须使用switch-to-buffer
然后切换回来。
尝试做:
(set-buffer "foo")
(goto-char (point-max))