Установите ECB с помощью стартового комплекта Emacs в Emacs 24

StackOverflow https://stackoverflow.com/questions/8833235

  •  27-10-2019
  •  | 
  •  

Вопрос

У меня установлен стартовый комплект Emacs. Когда я пытаюсь установить и запустить ECB, он не работает.
Что случилось? Как заставить ECB работать с Emacs Starter Kit?

Установка ЕЦБ

Я пробовал два способа:

  1. Добавление ecb к my-packages список, как описано здесь
  2. Установка ecb с list-packages командование

Оба способа дают одинаковый результат. Во время установки я получил много предупреждений, как

In ecb-test-with-original-advice-set:
ecb-advice-test.el:122:16:Warning: reference to free variable `ecb-version'

In ecb-analyse-jump-to-tag:
ecb-analyse.el:443:24:Warning: `interactive-p' is an obsolete function (as of
23.2); use `called-interactively-p' instead.

Общий размер файла составляет 807 строк, и я не знаю, как добавить его здесь, оставляя пост читабельно :)

Использование ECB

Когда я пытаюсь начать ЕЦБ, добавив (require 'ecb)
к ~/.emacs.d/$USER.el Следующая ошибка возникает при старте EMACS:

File error: Cannot open load file, ecb

Переменная load-path не содержит пути к файлам ECB. Когда я начинаю EMACS без (require 'ecb) нет ошибок и load-path содержать строку
"/home/maksim/.emacs.d/elpa/ecb-2.40". Анкет Добавление следующей строки

(add-to-list 'load-path (expand-file-name "~/.emacs.d/elpa/ecb-2.40"))

заставляет Emacs начинаться без ошибок, но ECB все еще не работает и ecb-activate Действует на то, как описано ниже.

Если я попытаюсь начать ECB, позвонив ecb-activate Я вижу следующее в *Messages* Буфер:

ECB 2.40 uses CEDET 1.0 (contains semantic 2.0, eieio 1.3, speedbar <unknown
version>).
ecb-activate-internal: Symbol's value as variable is void: stack-trace-on-error

Если я добавлю следующую строку в ~/.emacs.d/$USER.el

(setq stack-trace-on-error t)

тогда ecb-activate отвечает следующее

ECB 2.40 uses CEDET 1.0 (contains semantic 2.0, eieio 1.3, speedbar <unknown
version>).
All requirements for ECB 2.40 fulfilled - Enjoy it!
The ECB is now deactivated.
ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the basic setup
of ECB. (error-type: void-function, error-data:
(ecb-enable-own-temp-buffer-show-futition))

Информация о версии

  • GNU EMACS 24.0.92.1 (x86_64-PC-Linux-GNU, GTK+ версия 2.22.0)
    2011-12-06 на PLUOT, модифицированный Debian
  • EMACS-Starter-KIT 2.0.3
  • ECB 2.40
Это было полезно?

Решение

У меня были те же проблемы, что и у вас, я только что решил, вот мои спецификации:

  • GNU EMACS 24.0.93.1 (я использую версию Snapshot GTK на Ubuntu 11.10)
  • стартер-KIT 2.0.3
  • Cedet 1.0pre7 (это встроенный)
  • Последний ECB от CVS Repo (http://ecb.cvs.sourceforge.net/ecb/ecb/)

Плюс я сделал, как сказал @user1150335 с номером версии Мне не нужно было менять номер версии, как сказал @user1150335. Дайте мне знать, если я что -то пропустил или вам нужно что -то большее в конфигурации.

Другие советы

  1. add (setQ версия-ошибка nil) в Ecb-uprade.el
    Что означает отсутствие проверки версии CEDET.

  2. Правильно (ECB-ENABLE-SOWN-TEMP-BUFFER-SHOW-FUTITION) в (ECB-EENABE-EENBLE-TEMP-BUFFER-SHOWNUNCE) в ECB.EL

  3. DELETE ECB.ELC и ECB-UPGRADE.ELC

  4. MX Byte-Compile-File ECB.EL и ECB-UPRAGE.EL

  5. Добавить (setQ Stack-trace-on-error t) в .emacs или .emacs.d/init.el

  6. MX ECB-Active

Попробуйте отредактировать переменную ECB-Cedet-Required-Max (она находится в ECB-Cedet-wrapper.el). Работал на меня. Обновление: я не знаю, какую версию Cedet вы используете. Но есть пример, как я это сделал, шаг за шагом:

  1. (setq stack-trace-on-error t) (добавьте его в свой файл .emacs)
  2. Затем вы должны найти переменную ECB-Cedet-Required-Version-Max. В моей версии CEDET это в ECB-Cedet-WRAPPER.EL: 83
  3. Чтобы обойти версию проверку, она должна быть больше, чем в настоящее время установленное Cedet. (DefConst ECB-Cedet-Required-Version-Max '(1 2 4 9) сделает трюк для всех доступных в настоящее время версий.
  4. Это все. Перезапустите EMACS, чтобы проверить его.

По какой-то причине стек-трейс на ошибке должен быть правдой даже после коррекции. Я проверил его с GNU EMACS 24.0.92.1, CEDET версия: 1.1Beta (последняя проверка от BZR) и последняя проверка ECB от CVS. В настоящее время я не использую ECB, но я попробовал ECB-Byte-Compile, ECB-Activate, ECB-деактивирование, прыгает на окна ECB (методы, DIRS, источники), открытые файлы CPP и ELISP. Все работает просто отлично.

Вы должны исправить

(ECB-Eenable-Sown-Buffer-Show-Futition)

к

(ECB-Eenable-Sown-Buffer-Show-функция)

в Ecb.el

На GitHub есть новый филиал ECB под названием Newcedet. Анкет Эта версия ECB совместима с новыми версиями EMACS и Cedet 1.1 и выше. Это также Обсуждения в списке рассылки ECB по этому поводу.

Установить ecb-snapshot

M-x package-list-packages

и выберите из него ecb-snapshot. Также поместите это на ~/.emacs.d/$ user.el

(require 'ecb)
(setq stack-trace-on-error t)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top