В Emacs, как я могу перейти между функциями в текущем файле?
Я хочу быстро перейти к функции в моем буфере Emacs. Я хотел бы запустить некоторую функцию и получить приглашение, запрашивающее имя функции, с завершением для каждой функции, определенной в текущем буфере.
Обычно я использую etags для навигации, но иногда я ищу метод framework, который был переопределен в нескольких файлах. В этих случаях я могу найти файл, который мне нужен, но затем я бы хотел быстро перейти к функции там. В TextMate есть аналогичная функция, где вы можете выбрать определение из списка в правом нижнем углу редактора.
Ответы
Ответ 1
Просто перескакивать функции в текущем файле? Используйте imenu. Это самая простая и легкая из всех перечисленных альтернатив и может быть достаточно для того, что вы хотите. Он также встроен в Emacs и имеет минимальную настройку. Он оснащен графическими и текстовыми интерфейсами. Что-нибудь еще, и вам будет лучше использовать один из других замечательных предложений, сделанных здесь.
Ответ 2
Вы можете использовать etags-select для выбора нескольких совпадающих тегов. Но ответ на то, что вы просили, imenu.
Ответ 3
speedbar входит в стандартную комплектацию и дает вам разборчивое меню для каждого файла в текущем каталоге, по умолчанию средний щелчок по записи для определения функции переходит к этому def. С emacs23 это было изменено на более нормальный левый клик.
Ответ 4
Icicles, вероятно, ближе к тому, что вы ищете:
http://www.emacswiki.org/emacs/Icicles_-_Tags_Enhancements
Это усовершенствование etags и включает (помимо прочего) имя файла с тегом, чтобы вы могли узнать, является ли он тем, который вы ищете.
Ответ 5
попробуйте CEDET. Немного сложно настроить первое, но вот отличный учебник: от Alex ott
И когда он будет установлен, вы можете использовать semantic-complete-jump
. нажатой вкладкой пару раз, а также отображает символы.
Ответ 6
Если M-. вызывает неправильный метод, вы можете ввести C-u M-. для поиска следующего с тем же именем.
Ответ 7
global gtags очень хорош
Ответ 8
Для навигации по текущему файлу или набору выбранных файлов вам не нужен файл TAGS. Вы можете использовать Imenu. Но лучше использовать команды Icicles imenu.
Почему? Потому что они позволяют вам использовать завершение. Подстрока, регулярное выражение, префикс или нечеткое завершение. Объедините простые шаблоны, чтобы сопоставить или вычесть их.
Команда icicle-imenu
привязана в режиме Icicle к C-c =. Butyou также может искать только команду или просто функцию без команды (не интерактивную), используя команду icicle-imenu-command
или icicle-imenu-non-interactive-function
.
Эти команды являются несколькими командами, что означает, что они на самом деле являются браузерами: вы можете переключаться между определениями функций с помощью клавиш C-RET или C-mouse-2 (прямые переходы) и C-down (цикл). Нажмите RET или нажмите mouse-2, чтобы поселиться в конечном месте назначения.