8

我需要使用什么变量或函数来跳转到使用的标记集的set-mark-command C-SPC位置goto-char

(defun jump-to-mark ()
  (interactive)
  (goto-char <WHAT PUT HERE>))
4

4 回答 4

14

命令(exchange-point-and-mark绑定到C-xC-x)跳转到标记,并将当前位置(在跳转之前)放在标记环的顶部。

副作用是该区域被激活。您可以传递前缀参数(即 press C-uC-xC-x)来避免这种情况。


如其他答案所述,在标记环中导航的另一种方法是使用C-uC-SPC,它跳转到标记并将其从标记环中删除。因此,重复该命令可让您按时间倒序浏览所有连续的标记位置。但是,以这种方式访问​​的标记位置会丢失。

C-uC-SPCis的兄弟C-xC-SPC,它非常相似,但作用于全局标记环,它将连续标记存储在所有缓冲区中。

于 2013-03-07T13:39:15.327 回答
5

我刚刚发现mark-marker我的跳转功能应该是:

(defun jump-to-mark ()
  (interactive)
  (goto-char (mark-marker)))
于 2013-03-07T10:34:55.463 回答
4

我想你正在寻找的是

pop-global-mark 是 `simple.el' 中的一个交互式编译 Lisp 函数。

它绑定到 Cx C-@、Cx C-SPC。

(pop-global-mark)

弹出全局标记环并跳到顶部位置。

另一个选项是运行命令的 Cx Cx exchange-point-and-mark

于 2013-03-07T12:43:21.140 回答
3

要与您的原始代码保持一致,您可以只放(mark)WHAT PUT HERE 而不是放在这里,它会起作用。这是因为(mark)返回标记的位置(就像(point)返回点的位置整数一样)。

(defun jump-to-mark ()
  (interactive)
  (goto-char (mark)))
于 2013-03-07T16:21:02.537 回答