1

При установке Ubuntu у меня есть и python-mode.el и команда в моем файле .emacs :

(global-set-key [f2] 'hippie-expand)

Таким образом, ключевые слова подсвечиваются, и переменные, которые я уже определил, могут быть автоматически расширены с помощью [f2] . Как я могу получить автоэкспанд для работы с ключевыми словами python? Например, учитывая код

for x in enumera

Нажав [f2] как я могу получить это, чтобы расширить

for x in enumerate

(enumerate это известное ключевое слово). Так как я изучаю emacs, чем больше деталей в ответе, тем больше это поможет!

1 ответ1

1

Во-первых, вы можете предпочесть использовать один из пакетов автозаполнения или джедай.

Тем не менее, hippie-expand работает, пытаясь раскрыть текущее слово, используя список функций, хранящийся в переменной hippie-expand-try-functions-list (чтобы просмотреть его содержимое, нажмите C-h v hippie-expand-try-functions-list RET). Например, первая функция в значении по умолчанию для этой переменной пытается расширить имя файла. hippie-expand запрашивает расширение для каждой функции по очереди, переходя к следующей, когда функция исчерпала все свои возможные завершения. (То есть вы можете продолжать нажимать [f2] чтобы получить больше расширений.)

Когда вы раскрываете имя переменной, которая уже появляется в вашем коде Python, hippie-expand использует функцию try-expand-dabbrev , которая ищет текущее слово в текущем буфере. Другая функция в этом списке, try-expand-dabbrev-all-buffers , ищет текущее слово во всех открытых буферах. Таким образом, быстрое (и грязное) решение вашей проблемы состояло бы в создании файла со всеми ключевыми словами и встроенными модулями (enumerate является встроенным) и сохранением этого файла открытым в emacs. То есть, если вы настаиваете на использовании hippie-expand ; Очевидно, что два пакета, о которых я упоминал ранее, кажутся лучшими решениями, если вы можете заставить их работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .