2013-03-07 69 views
2

使用goto-char時需要使用什麼變量或函數跳轉到由set-mark-commandC-SPC設置的標記的位置?如何在Emacs中跳轉到標記

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

回答

8

exchange-point-and-mark的命令(綁定到C-XC-X)跳至標記,並把當前位置(即只是前跳)上的標記環的頂部。

副作用是區域被激活。您可以傳遞前綴參數(即按C-uC-xC-x)以避免這種情況。


正如在其他的答案中提到,另一種方式來標記環導航在於使用C-ùC-SPC,它跳轉到標記並從標記環中刪除。重複該命令可以讓您以反向時間順序瀏覽所有連續的標記位置。但是,以這種方式訪問​​的標記位置會丟失。

C-ùC-SPC的兄弟是C-XC-SPC,這是非常相似的,但作用在全球馬克環,其存儲連續標記在所有的緩衝區上。

+0

另外'C-u C- '的工作。 – jcubic 2013-03-08 08:25:06

+1

'C-u C-SPC'具有與'C-x C-SPC'相同的行爲:它彈出標記環的標記,表示標記不再可用。這可能(或可能不是,這取決於你)是一個不受歡迎的副作用。 'Cu C-SPC'和'Cx C-SPC'之間的區別在於前者作用於標記環(局部於當前緩衝區),而後者作用於全局標記環(全部連續標記位置緩衝區被存儲)。 – Francesco 2013-03-08 10:11:14

+0

我編輯了答案來反映這一點。 – Francesco 2013-03-08 10:21:08

3

我只是發現它的mark-marker所以我的功能跳應該是:

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

+1讓我查找標記 – mcheema 2013-03-10 08:57:45

3

我想你正在尋找的是

彈出的全球標誌是一個互動編譯Lisp函數 `simple.el'。

它綁定到C-x C-,C-x C-SPC。

(彈出式的全球標誌)

流行過的全球標誌環並跳轉到頂部位置。

另一種選擇是運行命令exchange-point-and-mark的C-x C-x。

+0

是的,但此命令將標記從標記環中彈出,這意味着它不再可用。這可能是OP的不良副作用。 – Francesco 2013-03-07 13:34:02

2

要保持與原始代碼的內聯,您可以將(mark)代替這裏的內容,並且它可以工作。這是因爲(mark)返回標記的位置(如(point)返回點的位置整數)。

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

+1對於回答問題也許在這裏使用標記比使用標記標記稍微更習慣,雖然它們在這個特定的上下文中似乎是可以互換的。 – mcheema 2013-03-10 08:56:32

相關問題