Установка модуля python.el в Emacs’е

Долгое время я использовал python-mode.el для работы с Питоном в Emacs’е. А тут решил-таки разобраться с более “продвинутым” режимом python.el.

Как водится, без “пляски с бубнами” не обошлось — пакет упорно требовал кучу других пакетов, отказывался нормально работать… Но, вроде, разобрался.

Предупреждение: Описывается процесс установки и настройки для Emacs 21!

Скачайте и распакуйте этот архив: python-mode.zip

Он содержит следующие файлы:

  • python-21.el
  • syntax.el
  • sym-comp.el
  • pair-mode.el
  • eldoc.el
  • emacs.py

Установка

  • Кладем все *.el файлы в каталог, где Emacs может их найти (хорошо бы еще откомпилировать их для ускорения работы);
  • Файл emacs.py кладем в каталог, где его может найти Python (например, /usr/lib/python2.3/site-packages или аналогичный в вашей системе).

Настойка

Вставляем следующие строки в ~/.emacs:

(autoload 'python-mode "python-21" "Python mode" t)
(autoload 'pair-mode "pair-mode" "Pair Mode" t)
(setq auto-mode-alist
(cons '("\\.py$" . python-mode) auto-mode-alist))
(add-hook 'python-mode-hook
'(lambda ()
(pair-mode 1)
(eldoc-mode 1)
(outline-minor-mode 1)
t))

Перезапускаем редактор.

Последние штрихи: настройка pair-mode и outline-minor-mode.

Загружаем какой-нибудь Питоновский скрипт, вводим: M-x customize-option RET pair-mode-chars RET, удаляем угловую скобку < и добавляем вместо нее кавычку " и обычный апостроф '. Нажимаем State и выбираем Save for Future Sessions.

Теперь можно поменять префикс для Outline Mode (мне, например, удобнее пользоваться C-c C-c вместо C-c @: снова M-x customize-option RET outline-minor-mode-prefix RET и при помощи C-q вводим нужную последовательность управляющих символов. Нажимаем State и выбираем Save for Future Sessions.

Теперь при открытии файла с текстом на Питоне (*.py) вам будут доступны (кроме подсветки синтаксиса и автоматического отступа) еще несколько полезных вещей:

  • Автодополение имен функций и модулей по M-TAB (правда, ищет только в ключевых словах, __builtins__ и импортируемых модулях), т.е. после import sys введя sys.pa и нажав M-TAB вы увидите, что введенный текст дополнился до sys.path;
  • Доступ к справке по модулям и функциям (выдача pydoc);
  • Подсказка в эхо-области по параметрам функции, на названии которой стоит курсор;
  • Загрузка и выполнение модулей не выходя из редактора;
  • Открытие файла модуля под курсором;
  • Outline-mode позволяет скрывать части кода, видеть общую структуру и быстро перемещаться по классам и функциям.