Веревка и Ясниппет в 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-репозиторий, который может быть полезен: