Веревка и Ясниппет в Emacs

Я установил поддержку Python для Emacs, используя веревку и yasnippet, следуя инструкциям, приведенным на http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/. Я объявил строковую переменную a_str="Hello", Теперь, когда я набираю a_str. и нажмите вкладку, я получаю следующее сообщение в минибуфере

Symbol's function definition is void: yas/snippet-table

Я получал выпадающий ранее, но вдруг это перестало работать. Любая причина, почему это могло случиться?

Кроме того, я хотел бы знать значение строки

(setq yas/trigger-key (kbd "C-c <kp-multiply>"))

Пожалуйста, помогите Спасибо

1 ответ

Решение
(setq yas/trigger-key (kbd "C-c <kp-multiply>"))

означает: генерировать внутреннее представление для привязки ключа, описываемой строкой C-c <kp-multiply>и присвоить это значение переменной yas/trigger-key,

(<kp-multiply> как правило, будет * клавиша на клавиатуре.)

Вы могли бы впоследствии использовать yas/trigger-key в привязках клавиш. например:

(local-set-key yas/trigger-key 'some-function)

Что касается вашей основной ошибки, либо что-то загружается неправильно (например, что yas/snippet-table существует в коде, но не загружается до его использования), или же существует несовместимость между Yasnippet и другой библиотекой, которая пытается его использовать (предположительно, автозаполнение в этом случае).

Внизу ветки комментариев, на которую вы ссылались, я вижу, что в то время обсуждалась аналогичная ошибка, вызванная изменениями в автозаполнении 0,2 над 0,1. Я также вижу, что автор учебника ссылается на свой репозиторий git для своего собственного конфига Emacs и все еще использует там версию 0.1 автозаполнения.

Поэтому я бы посоветовал сначала проверить ваши версии каждой библиотеки. В учебнике используются:

  • pymacs 0.23
  • ясниппет 0.5.9
  • автозаполнение 0,1

Версия Rope неясна и описана только как "самая последняя версия разработки (по состоянию на декабрь 2008 года)"

В качестве альтернативы, вы можете предпочесть получить версии непосредственно из этого репозитория git (тем более что версия yasnippet в репозитории говорит, что это версия 0.2.2, а не 0.5.9).

Если вы работаете с ними, вы можете попробовать что-то модернизировать (и, возможно, добавить комментарий к этой ветке со списком совместимых версий, если вы найдете рабочую комбинацию, которая более поздняя).

В противном случае вот еще один git-репозиторий, который может быть полезен:

https://github.com/gabrielelanaro/emacs-for-python/

Другие вопросы по тегам