2008-09-24 5 views

ответ

2

Поиск в Интернете я нахожу http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7 описания complete-tab в ETags. По умолчанию он равен M-Tab. Это связывание может быть проблемой для вас

Кроме того, ETags имеет некоторые ограничения, которые могут раздражать вас ...

Ссылка также указывает на Cedet как имеющие лучшую поддержку завершения символа.

8

Я могу ответить только на ваш вопрос, как тот, кто не использовал Eclipse. Но! Что, если бы был действительно хороший быстрый эвристический анализ всего, вы набрали или просмотрели в своих буферах emacs, и вы получили smart завершение над всем, что везде, а не только в коде?

 
M-x load-library completion 
M-x global-set-key C-RET complete RET 
18

M-/ это быстрый и грязный автозаполнения на основе содержимого текущего буфера. Это не даст вам все, что вы получите в Eclipse, но удивительно мощным.

+1

Не забывайте, что привязка M-/to 'hippie-expand обеспечивает еще больше возможностей завершения. – 2009-05-22 20:52:23

7

Когда я занимаюсь разработкой Java я использовал для использования:

Java Development Environment for Emacs (JDEE)

JDEE обеспечит завершение имя метода, когда вы явно вызываете jdee при условии функции. Он имеет привязку клавиатуры для этой функции в режиме jdee.

6

Пакет CEDET обеспечивает выполнение для C/C++ & Java (и для некоторых других языков). Для первоначальной настройки вы можете взять my config, который я использую для работы с проектами на C++.

3

Прямо сейчас, я использую Auto Complete для Emacs. Являясь текущей Visual Studio и бывшим пользователем Eclipse, я могу сказать, что он неплохо конкурирует с обоими приложениями. Это все еще не так хорошо, как Microsoft IntelliSense для C#, но некоторые говорят, что C++, как известно, трудно разобрать.

Он использует силу (я считаю) Semantic пакет от Cedet, и мне кажется, что он удобнее использовать по сравнению с Smart Complete. Он заполняет члены C++, локальные переменные и т. Д. Это очень хорошо. Тем не менее, он падает на невозможность завершить перегруженные методы (он только показывает функцию один раз без параметров, но это ограничение Cedet, которое я считаю) и другие различные вещи. В будущем это может улучшиться!

Кстати, я мог ошибаться здесь, но я думаю, вам нужен проект EDE, созданный для завершения работы члена класса (как и в случае с семантикой). Я только когда-либо использовал его, имея проект EDE, поэтому я предполагаю, что это правда.

0

Я написал C++-специфический пакет поверх CEDET, который может предоставить то, что вы хотите. Он предоставляет подсказку аргументов типа Eclipse. Перегруженные функции поддерживаются как для аргументов функции hint , так и для завершения. пакет находится здесь:

https://github.com/abo-abo/function-args

Убедитесь, чтобы проверить хороший скриншот:

https://raw.github.com/abo-abo/function-args/master/doc/screenshot-1.png

0

auto-complete-clang является то, что вы хотите. Невозможно ошибиться при использовании реального компилятора C++ для доработок.

Единственная проблема, с которой он сталкивается, - это не знать, какие -I и -D флаги передаются компилятору. Есть пакеты для emacs, которые позволяют вам объявлять проекты, а затем вы можете их использовать.

Лично я использую CMake для всех C и C++, поэтому я написал CMake code, чтобы передать эту информацию emacs через локальные переменные каталога. Он работает, но я подумываю написать пакет, который вызывает cmake от emacs, поэтому есть меньше вторжений.