2013-02-14 61 views
1

我這個做了很多:[M-%]query-replace,然後打[y]了幾下,然後我過去所在的區域我改變的東西,所以我打[q]做。Emacs的:跳回到先前查詢替換位置

然後我想讓光標回到我所在的位置,所以在這裏它變得尷尬。我[C-_]undo最後一次替換,然後把光標移到字符上,然後undo再次重做最後一次替換。現在光標在我編輯的地方,但必須有更好的方法。

(我很高興回到那裏要麼我開始替換,或者在最後更換髮生。)

回答

2

C-SPC跳轉到標記(這是自動設置爲Blrfl指出的),然後彈出前一個標記出本地標記環(這樣你就可以重複這一過程移動到前面的標誌)。

我認爲這比exchange-point-and-mark更可取,因爲後者重新激活標記,突出顯示瞬態標記模式中的區域,在這種情況下您不希望使用該區域。 (除非你想跳來回你開始在點和最終更換的位置,在這種情況下exchange-point-and-mark是你想要的到底是什麼之間)。

+1

認爲你的意思是'C-u C-SPC'。 'C-u SPC'插入四個空格。 – Blrfl 2013-02-14 20:57:26

+0

(我自由更正了@Blrfl建議的答案。) – Grumdrig 2013-02-14 21:40:30

+0

太棒了!作爲獎勵,不需要在'C-u C-SPC'前打'q'。 – Grumdrig 2013-02-14 21:43:03

1

後退出,該商標將是你開始和點會在哪裏你停止。 C-x C-x將交換這兩個,把你開始的地方。

+0

作爲@phils提到的,這確實凸顯了該地區這對我來說並不理想。雖然'C-x C-x C-g'是一種解決方法。 – Grumdrig 2013-02-14 21:42:02

+0

甚至沒有想到突出問題,因爲當我開始使用它時(舊石器時代)Emacs沒有這樣做,並且當它將'transient-mark-mode'設置爲'nil'以使其表現爲舊方式。 – Blrfl 2013-02-17 14:14:14