Beste (minimale Tastenanschläge) Methode, um zum Start einer Funktion und dann zurück zum aktuellen Punkt zu springen?

16

Manchmal bin ich in einer langen Funktion, in der der Beginn der Funktion nicht sichtbar ist. Während ich kürzlich erfahren habe, (which-function-mode)welcher Name mir in der Modeline den Namen der Funktion sagt, möchte ich in der Lage sein, schnell zum Start der Funktion und dann so einfach wie möglich zurückzukehren.

Bisher habe ich zwei Lösungen gefunden.

  1. Mit einer Marke

    C-SPC Aktuellen Punkt markieren

    C-M-a Zum Funktionsstart rückwärts gehen

    C-x C-x Markierung mit aktuellem Punkt tauschen (springt zurück)

    C-g Markierte Region abbrechen

  2. Mit einem Register

    C-x r SPC p Aktuellen Punkt in Register 'p' speichern

    C-M-a Zum Funktionsstart rückwärts gehen

    C-x r j p Sprung zum Punkt, der im Register 'p' gespeichert ist

Gibt es einen besseren Weg? Ich bin nicht dagegen, meiner .emacsDatei etwas Elisp hinzuzufügen .

Harvey
quelle

Antworten:

19

Das funktioniert bei mir:

  • C-M-aan den Anfang der Funktion springen; Dies setzt die Marke automatisch
  • C-u C-SPC um die Markierung zu entfernen und zur vorherigen Position zurückzukehren
rekado
quelle
2
Nett! Ich hatte keine Ahnung, dass es das Zeichen für mich gesetzt hat, und ich wusste nichts über den Präfix-Modifikator fürset-mark-command
Harvey,
10
Wenn Sie sich erst einmal an die Verwendung pop-to-mark-commandgewöhnt haben (so nennt man das C-u C-SPC), werden Sie sich fragen, wie Sie ohne sie gelebt haben. Sie können Ihren Weg zurück finden, woher Sie gekommen sind, indem Sie einer kleinen Spur von Semmelbröseln folgen, von denen Sie nicht einmal wussten, dass Sie gehen würden.
Nispio
Tatsächlich. Es ist typisch für Emacs-Befehle, auf den Markierungsring zu drücken, wenn sie Sie in einer beliebigen Entfernung von Ihrem Standort bewegen möchten. Benutzer sollten sich daher generell an diesen Ansatz erinnern.
Phils