¿El mejor método (pulsaciones de teclado mínimas) para saltar al inicio de una función y luego volver al punto actual?

16

A veces estoy dentro de una función larga donde el inicio de la función no es visible. Si bien recientemente he aprendido sobre lo (which-function-mode)que me dice en la línea de modo el nombre de la función, me gustaría poder saltar rápidamente al inicio de la función y luego regresar lo más fácilmente posible.

Hasta ahora he encontrado dos soluciones.

  1. Usando una marca

    C-SPC Marcar punto actual

    C-M-a Moverse hacia atrás para iniciar la función

    C-x C-x Intercambiar marca con el punto actual (salta hacia atrás)

    C-g Cancelar región marcada

  2. Usando un registro

    C-x r SPC p Guardar el punto actual en el registro 'p'

    C-M-a Moverse hacia atrás para comenzar la función

    C-x r j p Saltar al punto guardado en el registro 'p'

¿Hay una mejor manera? No me opongo a agregar algo de elisp a mi .emacsarchivo.

Harvey
fuente

Respuestas:

19

Esto funciona para mi:

  • C-M-apara ir al comienzo de la función; esto establece marca automáticamente
  • C-u C-SPC para hacer estallar la marca y volver a la posición anterior
rekado
fuente
2
¡Agradable! No tenía ni idea de que se estableció la marca para mí, y yo no sabía sobre el modificador de prefijo paraset-mark-command
Harvey
10
Una vez que te acostumbres a usar pop-to-mark-command(que es lo que se llama C-u C-SPC), te preguntarás cómo viviste sin él. Puedes encontrar el camino de regreso de donde vienes siguiendo un pequeño rastro de migas de pan que ni siquiera sabías que te ibas.
Nispio
En efecto. Es típico que los comandos de Emacs empujen al anillo de marca si están a punto de moverlo una distancia arbitraria de donde estaba, por lo que los usuarios deben recordar este enfoque en general.
Phil