如何在Emacs中跳转到标记

时间:2013-03-07 10:33:25

标签: emacs elisp

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

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

4 个答案:

答案 0 :(得分:8)

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

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


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

Cu C-SPC 的兄弟是 Cx C-SPC ,这是非常相似但行为在全局标记环上,它在所有缓冲区中存储连续标记

答案 1 :(得分:3)

我刚发现它是mark-marker所以我的跳跃功能应该是:

(defun jump-to-mark ()
  (interactive)
  (goto-char (mark-marker)))

答案 2 :(得分:3)

我认为你在寻找的是

  

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

     

它与C-x C- @,C-x C-SPC结合。

     

(弹出全局标记)

     

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

另一个选项是C-x C-x,它运行命令exchange-point-and-mark

答案 3 :(得分:2)

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

(defun jump-to-mark ()
  (interactive)
  (goto-char (mark)))