Elisp では、この一見簡単なコードの平和は、実際には要点を動かしません。
(with-current-buffer "foo"
(goto-char (point-max)))
AFAIKwith-current-buffer
は、ターゲット バッファ内のポイントを復元しないでください。そうでない場合、バッファ内のポイントを操作するにはどうすればよいですか?
バッファのポイントとウィンドウのポイントを混同していると思います。「foo」を表示しているウィンドウにカーソルを移動したい場合は、 を実行中にそのウィンドウを選択するかgoto-char
、または を使用する必要がありますset-window-point
。一般に、バッファには N+1 個のポイントがあります (1 つは独自のポイントで、N はバッファを表示する N 個のウィンドウ用です)。
使用してからswitch-to-buffer
元に戻す必要がある場合があります。
やってみてください:
(set-buffer "foo")
(goto-char (point-max))