В визуальной студии легче нажать кнопку F12, чтобы перейти к объявлению функции или переменной при редактировании кода C/С++.
Есть ли короткий ключ в emacs для этого?
В визуальной студии легче нажать кнопку F12, чтобы перейти к объявлению функции или переменной при редактировании кода C/С++.
Есть ли короткий ключ в emacs для этого?
Ну, это немного больше, чем это.
По умолчанию Emacs не "знает" о объявлениях функций для кода C или С++. Сначала получите Exuberant Ctags. Затем используйте команду etags
(ctags для Emacs) в исходном коде. Будет создан файл с именем TAGS
.
Затем, редактируя исходный код, когда вы хотите перейти к объявлению, нажмите M-. (мета и точка, или alt и точка на современных клавиатурах). Сначала Emacs попросит вас указать местонахождение вашего файла тегов. Направьте его на тот, который вы создали, а затем навигация будет автоматической.
Я бы предложил прочитать статью Emacswiki об тэгах, чтобы лучше понять эту функциональность.
Самая новая версия Emacs (23.2) поставляется с CEDET, которая имеет более сложные функции для навигации по C и С++, но она может быть немного сложно настроить правильно, поэтому читайте больше об этом, если вам интересно.
Как говорили другие, в emacs нет встроенного универсального решения для этого. Тем не менее, после использования этой функции в IntelliJ я тоже хотел ее в emacs, поэтому я сделал Dumb Jump.
Прямо сейчас Dumb Jump имеет базовую поддержку для:
Он доступен через MELPA и активно развивается.
Существует несколько способов сделать это. Как упоминалось в darioo, Ctags - один, но по умолчанию он переходит к определению (что может сработать для вас). Однако, смотря далее, вы можете видеть, что префикс M-.
(т.е. C-u M-.
) приведет вас к следующему совпадению тегов (что часто является объявлением). Существует также опция --declarations
, но Exuberant Ctags, похоже, не поддерживает ее.
CEDET - еще один вариант, но по моему опыту он еще не готов к производству. Часто в С++ semantic-ia-fast-jump
будут отправляться объявления вперед, а не определение или декларация.
M-. ключ приведет вас к определению функции emacs.