Фотография | Компьютеры | Программы | Эсперанто | Кровное
Долгое время я использовал python-mode.el для работы с Питоном в Emacs'е. А тут решил-таки разобраться с более “продвинутым” режимом python.el.
Как водится, без “пляски с бубнами” не обошлось — пакет упорно требовал кучу других пакетов, отказывался нормально работать… Но, вроде, разобрался.
Предупреждение: Описывается процесс установки и настройки для Emacs 21!
Скачайте и распакуйте этот архив: python-mode.zip
Он содержит следующие файлы:
python-21.elsyntax.elsym-comp.elpair-mode.eleldoc.elemacs.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;