Как получить завершение функции стиля Eclipse в Emacs для C, C++ и JAVA? Мне нравится сила текстового редактора Emacs, но отсутствие функции «intellisense» оставляет меня с помощью Eclipse.Выполнение функций стиля Eclipse в Emacs для C, C++ и JAVA?
ответ
Вы пробовали плагин emacs для затмения?
http://people.csail.mit.edu/adonovan/hacks/eclipse-emacs.html
Поиск в Интернете я нахожу http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7 описания complete-tab
в ETags. По умолчанию он равен M-Tab
. Это связывание может быть проблемой для вас
Кроме того, ETags имеет некоторые ограничения, которые могут раздражать вас ...
Ссылка также указывает на Cedet как имеющие лучшую поддержку завершения символа.
Я могу ответить только на ваш вопрос, как тот, кто не использовал Eclipse. Но! Что, если бы был действительно хороший быстрый эвристический анализ всего, вы набрали или просмотрели в своих буферах emacs, и вы получили smart завершение над всем, что везде, а не только в коде?
M-x load-library completion M-x global-set-key C-RET complete RET
M-/
это быстрый и грязный автозаполнения на основе содержимого текущего буфера. Это не даст вам все, что вы получите в Eclipse, но удивительно мощным.
Когда я занимаюсь разработкой Java я использовал для использования:
Java Development Environment for Emacs (JDEE)
JDEE обеспечит завершение имя метода, когда вы явно вызываете jdee при условии функции. Он имеет привязку клавиатуры для этой функции в режиме jdee.
Прямо сейчас, я использую Auto Complete для Emacs. Являясь текущей Visual Studio и бывшим пользователем Eclipse, я могу сказать, что он неплохо конкурирует с обоими приложениями. Это все еще не так хорошо, как Microsoft IntelliSense для C#, но некоторые говорят, что C++, как известно, трудно разобрать.
Он использует силу (я считаю) Semantic пакет от Cedet, и мне кажется, что он удобнее использовать по сравнению с Smart Complete. Он заполняет члены C++, локальные переменные и т. Д. Это очень хорошо. Тем не менее, он падает на невозможность завершить перегруженные методы (он только показывает функцию один раз без параметров, но это ограничение Cedet, которое я считаю) и другие различные вещи. В будущем это может улучшиться!
Кстати, я мог ошибаться здесь, но я думаю, вам нужен проект EDE, созданный для завершения работы члена класса (как и в случае с семантикой). Я только когда-либо использовал его, имея проект EDE, поэтому я предполагаю, что это правда.
Я написал C++-специфический пакет поверх CEDET, который может предоставить то, что вы хотите. Он предоставляет подсказку аргументов типа Eclipse. Перегруженные функции поддерживаются как для аргументов функции hint , так и для завершения. пакет находится здесь:
https://github.com/abo-abo/function-args
Убедитесь, чтобы проверить хороший скриншот:
https://raw.github.com/abo-abo/function-args/master/doc/screenshot-1.png
auto-complete-clang является то, что вы хотите. Невозможно ошибиться при использовании реального компилятора C++ для доработок.
Единственная проблема, с которой он сталкивается, - это не знать, какие -I
и -D
флаги передаются компилятору. Есть пакеты для emacs, которые позволяют вам объявлять проекты, а затем вы можете их использовать.
Лично я использую CMake для всех C и C++, поэтому я написал CMake code, чтобы передать эту информацию emacs через локальные переменные каталога. Он работает, но я подумываю написать пакет, который вызывает cmake от emacs, поэтому есть меньше вторжений.
Не забывайте, что привязка M-/to 'hippie-expand обеспечивает еще больше возможностей завершения. – 2009-05-22 20:52:23