¿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.

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.