Kann der Cursor zur vorherigen Position zurückspringen?

24

Kann ich meinen Cursor in einem Puffer an seine letzte Position zurückspringen lassen? (vorzugsweise ohne die vorherige Position markieren zu müssen)

Zum Beispiel, Ca springt an den Anfang der aktuellen Zeile. Kann ich dorthin zurückspringen, wo es vorher war?

Zum Beispiel, wenn Cx Cf eine Datei in einem anderen Verzeichnis öffnen, möchte ich zur vorherigen Position im Pfadnamen zurückspringen.

Vielen Dank.

Tim
quelle
Wird C-x xwas laufen exchange-point-and-mark? Emacs speichert nicht alle Cursorbewegungen, sondern nur die, denen Sie dies ausdrücklich gesagt haben. Das Hinzufügen und Entfernen von Markierungen ist eine Möglichkeit, den Verlauf der Cursorbewegung zu speichern. emacswiki.org/emacs/MarkCommands - hier ist eine gute Diskussion über das Thema.
wvxvw
1
C-x xist undefiniert. M-x exchange-point-and-mark: In diesem Puffer ist keine Markierung gesetzt.
Tim
@ Tim Es ist C-x C-x. Außerdem müssen Sie zuerst eine Markierung setzen, damit dies funktioniert. Um eine Marke explizit zu setzen, tun Sie dies C-SPC. So springen Sie zur vorherigen Marke zurück C-u C-SPC.
Kaushal Modi
Ja, richtig, tut mir leid, das war es C-x C-x. C-x xist meine eigene Bindung.
wvxvw
1
Nicht sicher, ob dies ein Duplikat ist, aber emacs.stackexchange.com/q/3421/454 kann hilfreich sein.
Phils

Antworten:

30

Hier sind einige Zeichen -related Bindungen , die Ihnen helfen können:

  • C-SPC- Markierung setzen und Region aktivieren (gebunden an set-mark-command)
  • C-SPC C-SPC - Markierung setzen (aktiviert und deaktiviert Region)
  • C-x C-x - gebunden an exchange-point-and-mark
  • C-u C-SPC - zur vorherigen Marke springen

Weitere Informationen zu diesem Thema finden Sie in der Dokumentation zu Mark .

Kaushal Modi
quelle
9
Beachten Sie, dass Befehle, die dazu neigen, den Cursor um einen willkürlichen (aber möglicherweise großen) Abstand von Ihrer Position zu bewegen, die Markierung (normalerweise) automatisch zuerst drücken. So können Sie mit einer Single häufig dorthin zurückkehren, wo Sie vorher waren C-u C-SPC.
Phils
Mit counsel-mark-ringes ist auch möglich , alle Noten aufzulisten und mit Cursor navigieren, eine Echtzeit - Vorschau im Puffer zu bekommen.
Arialdo Martini
6

Wenn Sie an den Orten bearbeiten, an denen Sie landen, goto-last-changewird dies für Sie erledigt. http://www.emacswiki.org/emacs/GotoLastChange

weißglühender Mann
quelle
2
In Spacemacs ist es gebundeng ;
iLemming
1

Sie können "Register" verwenden.

Aus der Emacs-Info-Datei

13.1 Positionen in Registern speichern

C-x r <SPC> R' Record the position of point and the current buffer in register R (point-to-register ').

C-x r j R' Jump to the position and buffer saved in register R (zum Register springen ').

Wenn Sie C-x r <SPC>' (point-to-register ') gefolgt von einem Zeichen `R' eingeben, werden sowohl die Position des Punkts als auch der aktuelle Puffer in Register R gespeichert. Das Register speichert diese Informationen, bis Sie etwas anderes darin speichern.

Der Befehl `Cx rj R 'wechselt zu dem in Register R aufgezeichneten Puffer und bewegt den Punkt an die aufgezeichnete Position. Der Inhalt des Registers wird nicht geändert, sodass Sie beliebig oft zur gespeicherten Position springen können.

Wenn Sie C-x r j' to go to a saved position, but the buffer it was saved from has been killed,Cx verwenden, versucht rj ', den Puffer durch Aufrufen derselben Datei erneut zu erstellen. Dies funktioniert natürlich nur für Puffer, die Dateien besucht haben.

Joe
quelle