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.

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.