Подтвердить что ты не робот

Что такое короткий ключ, чтобы перейти к декларации в Emacs?

В визуальной студии легче нажать кнопку F12, чтобы перейти к объявлению функции или переменной при редактировании кода C/С++.

Есть ли короткий ключ в emacs для этого?

4b9b3361

Ответ 1

Ну, это немного больше, чем это.

По умолчанию Emacs не "знает" о объявлениях функций для кода C или С++. Сначала получите Exuberant Ctags. Затем используйте команду etags (ctags для Emacs) в исходном коде. Будет создан файл с именем TAGS.

Затем, редактируя исходный код, когда вы хотите перейти к объявлению, нажмите M-. (мета и точка, или alt и точка на современных клавиатурах). Сначала Emacs попросит вас указать местонахождение вашего файла тегов. Направьте его на тот, который вы создали, а затем навигация будет автоматической.

Я бы предложил прочитать статью Emacswiki об тэгах, чтобы лучше понять эту функциональность.

Самая новая версия Emacs (23.2) поставляется с CEDET, которая имеет более сложные функции для навигации по C и С++, но она может быть немного сложно настроить правильно, поэтому читайте больше об этом, если вам интересно.

Ответ 2

Как говорили другие, в emacs нет встроенного универсального решения для этого. Тем не менее, после использования этой функции в IntelliJ я тоже хотел ее в emacs, поэтому я сделал Dumb Jump.

Прямо сейчас Dumb Jump имеет базовую поддержку для:

  • JavaScript
  • Emacs Lisp
  • Python
  • Go
  • PHP
  • рубин
  • Faust
  • и более... (более 20 сейчас)

Он доступен через MELPA и активно развивается.

Ответ 3

Существует несколько способов сделать это. Как упоминалось в darioo, Ctags - один, но по умолчанию он переходит к определению (что может сработать для вас). Однако, смотря далее, вы можете видеть, что префикс M-. (т.е. C-u M-.) приведет вас к следующему совпадению тегов (что часто является объявлением). Существует также опция --declarations, но Exuberant Ctags, похоже, не поддерживает ее.

CEDET - еще один вариант, но по моему опыту он еще не готов к производству. Часто в С++ semantic-ia-fast-jump будут отправляться объявления вперед, а не определение или декларация.

Ответ 4

M-. ключ приведет вас к определению функции emacs.