32.6 移动标记位置

本节描述如何修改已有标记的位置。执行此操作时,务必确认该标记是否在程序外部被使用,以及移动后会产生什么影响—否则可能在 Emacs 其他部分引发难以理解的问题。

Function: set-marker marker position &optional buffer

此函数将 marker 移至 buffer 中的 position 位置。如果未提供 buffer,则默认为当前缓冲区。

如果 positionnil 或不指向任何位置的标记,则 marker 被设为不指向任何位置。

返回值为 marker

(setq m (point-marker))
     ⇒ #<marker at 4714 in markers.texi>
(set-marker m 55)
     ⇒ #<marker at 55 in markers.texi>
(setq b (get-buffer "foo"))
     ⇒ #<buffer foo>
(set-marker m 0 b)
     ⇒ #<marker at 1 in foo>
Function: move-marker marker position &optional buffer

此函数是 set-marker 的别名。