Najlepsza (minimalna liczba naciśnięć klawiszy) metoda przeskakiwania na początek funkcji, a następnie powrót do bieżącego punktu?

16

Czasami jestem w długiej funkcji, w której początek funkcji nie jest widoczny. Chociaż ostatnio dowiedziałem się o tym, (which-function-mode)co w modelu mówi mi o nazwie funkcji, chciałbym móc szybko przejść do początku funkcji, a następnie wrócić tak łatwo, jak to możliwe.

Do tej pory znalazłem dwa rozwiązania.

  1. Za pomocą znaku

    C-SPC Zaznacz bieżący punkt

    C-M-a Przejdź do tyłu, aby rozpocząć funkcję

    C-x C-x Zamień znak na bieżący punkt (odskakuje do tyłu)

    C-g Anuluj zaznaczony region

  2. Korzystanie z rejestru

    C-x r SPC p Zapisz bieżący punkt w rejestrze „p”

    C-M-a Przejdź do tyłu, aby rozpocząć funkcję

    C-x r j p Przejdź do punktu zapisanego w rejestrze „p”

Czy jest lepszy sposób? Nie jestem przeciwny dodawaniu elisp do mojego .emacspliku.

Harvey
źródło

Odpowiedzi:

19

To działa dla mnie:

  • C-M-aaby przejść do początku funkcji; ustawia to znak automatycznie
  • C-u C-SPC aby usunąć znak i powrócić do poprzedniej pozycji
rekado
źródło
2
Ładny! Nie miałem pojęcia, że ​​to dla mnie wyznacza, i nie wiedziałem o modyfikatorze prefiksu dlaset-mark-command
Harvey
10
Kiedy już przyzwyczaisz się do używania pop-to-mark-command(tak się nazywa C-u C-SPC), będziesz się zastanawiać, jak żyłeś bez niego. Możesz znaleźć drogę powrotną, skąd przybyłeś, podążając śladami bułki tartej, o której nawet nie wiedziałeś, że wyjeżdżasz.
nispio
W rzeczy samej. Polecenia Emacsa są typowe dla przesuwania znacznika, jeśli mają zamiar przenieść cię na dowolną odległość od miejsca, w którym byłeś, więc użytkownicy powinni pamiętać to podejście w ogóle.
phils