Лучший (минимальное нажатие клавиши) метод перехода к началу функции, а затем обратно к текущей точке?

16

Иногда я нахожусь внутри длинной функции, где начало функции не видно. Хотя я недавно узнал о (which-function-mode)том, что в модельной строке сообщает мне имя функции, я хотел бы иметь возможность быстро перейти к началу функции, а затем назад, насколько это возможно.

Пока я нашел два решения.

  1. Использование знака

    C-SPC Отметить текущую точку

    C-M-a Перейти назад к началу функции

    C-x C-x Обменный знак с текущей точкой (отскакивает назад)

    C-g Отменить отмеченный регион

  2. Использование регистра

    C-x r SPC p Сохранить текущую точку в регистре 'p'

    C-M-a Перейти назад к началу функции

    C-x r j p Перейти к точке, сохраненной в регистре 'p'

Есть ли способ лучше? Я не против добавления некоторого elisp в мой .emacsфайл.

Харви
источник

Ответы:

19

Это работает для меня:

  • C-M-aперейти к началу функции; это устанавливает отметку автоматически
  • C-u C-SPC чтобы поставить отметку и вернуться на предыдущую позицию
rekado
источник
2
Ницца! Я понятия не имел, что это поставило мне оценку, и я не знал о модификаторе префикса дляset-mark-command
Харви,
10
Как только вы привыкнете к использованию pop-to-mark-command(что называется C-u C-SPC), вы будете удивляться, как вы жили без него. Вы можете найти дорогу назад, откуда пришли, следуя по маленькому следу хлебных крошек, о которых вы даже не подозревали, что уходите.
Nispio
В самом деле. Обычно команды Emacs нажимают на кольцо меток, если они собираются отодвинуть вас на произвольное расстояние от того места, где вы были, поэтому пользователи должны помнить этот подход в целом.
Филс