Meilleure méthode (touches minimales) pour sauter au début d'une fonction, puis revenir au point actuel?

16

Parfois, je suis dans une longue fonction où le début de la fonction n'est pas visible. Alors que j'ai récemment appris (which-function-mode)ce qui m'indique dans la modélisation le nom de la fonction, j'aimerais pouvoir passer rapidement au début de la fonction, puis revenir aussi facilement que possible.

Jusqu'à présent, j'ai trouvé deux solutions.

  1. Utiliser une marque

    C-SPC Marquer le point actuel

    C-M-a Reculer pour démarrer la fonction

    C-x C-x Échangez la marque avec le point actuel (vous saute en arrière)

    C-g Annuler la région marquée

  2. Utiliser un registre

    C-x r SPC p Enregistrer le point actuel dans le registre «p»

    C-M-a Reculer pour commencer la fonction

    C-x r j p Aller au point enregistré dans le registre 'p'

Y a-t-il une meilleure façon? Je ne m'oppose pas à ajouter un peu d'élisp à mon .emacsdossier.

Harvey
la source

Réponses:

19

Cela fonctionne pour moi:

  • C-M-apour passer au début de la fonction; cela définit automatiquement la marque
  • C-u C-SPC pour faire apparaître la marque et revenir à la position précédente
rekado
la source
2
Agréable! Je ne savais pas que cela me donnait la marque, et je ne connaissais pas le modificateur de préfixe pourset-mark-command
Harvey
10
Une fois que vous vous serez habitué à utiliser pop-to-mark-command(c'est ce que l'on appelle C-u C-SPC), vous vous demanderez comment vous avez vécu sans. Vous pouvez retrouver votre chemin d'où vous venez en suivant une petite piste de chapelure dont vous ne saviez même pas que vous partiez.
nispio
En effet. Il est typique que les commandes Emacs poussent jusqu'à l'anneau de marque si elles sont sur le point de vous éloigner arbitrairement de votre position, donc les utilisateurs doivent se souvenir de cette approche en général.
phils