Как известно, существует множество решений которые позволяют сделать из «консольного» редактора (vim/emacs) более-менее удобную IDE для языка Python. Представляю Вашему вниманию наиболее успешную, на мой взгляд, реализацию среды разработкы в редакторе emacs на основе пакета python-jedi.el. Отмечу, что бандл заменяющий rope(*-jedi) есть так же для vim, инстукцию по его настройке можно найти здесь .
1. Подготовка к настройке
Для настройки emacs следует знать о стандартном конфигурационном файле, который располагается в ~/.emacs и директории ~/.emacs.d куда мы будем добавлять плагины.
Так же следует ознакомиться с сокращениями и обозначений «горячих» клавиш. Таких как C(по-умолчанию Ctrl) и Meta(по-умолчанию Alt). Так же существуют определенные правила при написании комбинаций клавиш, так, например: C-h t
Данная команда означает, что надо одновременно нажать Ctrl и h, отпустить, затем t. Полный список «горячих» клавиш.
После того как разобрались с основными клавишами и порядком их использования, можно приступать к превращению редактора в IDE.
2. Необходимые пакеты
Конечно, кроме python-jedi нам понадобятся еще такие пакеты как:
- auto-complete: интерактивное авто-дополнение;
- autopair: авто-закрытие кавычек и скобок;
- flycheck: проверка синтаксиса;
- ido-settings.el: интерактивное управление буферами и файлами;
- ipython: интеграция с мощной интерактивной оболочкой python;
- linum-mode: нумерация строк;
Сам же python-jedi, является расширенным авто-дополнением кода, т.е. в отличие от auto-complete, он умеет дополнять еще и тот код который вы еще не вводили в данном файле, например — дополнение импорта
2.1 Установка пакетов в Emacs-24
Для простой и быстрой установки пакетов в emacs лучше всего воспользоваться ELPA (Emacs Lisp Package Archive), для этого необходимо в конфиг-файл .emacs добавить репозитории и определить директорию откуда будут подгружаться модули
add-to-list 'load-path "~/.emacs.d/")
(load "package")
(require 'package)
(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")
("melpa" . "http://melpa.milkbox.net/packages/")))
После этого можно получить список
M-x: package-list-packages
и преступить к установке пакетов auto-complete, autopair, flycheck, ipython
M-x: package-install
Однако, кроме package существует решение el-get, отличительной особенностью которого яляется умение автоматически докачивать зависимости. Для установки el-get перейдите в буфер *scratch* (C-x b) и вставьте следующие строки:
(url-retrieve
"https://raw.github.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(let (el-get-master-branch)
(goto-char (point-max))
(eval-print-last-sexp))))
затем нажмите C-j (это выполнит код), после этого добавляем в конфиг директорию el-get c условием перезакачки скрипта
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil 'noerror)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.github.com/dimitri/el-get/master/el-get-install.el")
(let (el-get-master-branch)
(goto-char (point-max))
(eval-print-last-sexp))))
(el-get 'sync)
Т.к. пакет ido уже присутствует в emacs 24, то просто активируем его через .emacs:
(require 'ido)
(ido-mode t)
2.2 Установка jedi
Для корректной работы python-jedi необходим python-модуль virtualenv, в большинстве ОС, по-умолчанию, он отсутствует, устанавливаем через pip:
pip install virtualenv
M-x: el-get-install jedi
После этого в конфигурационный файл добавляем
(add-hook 'python-mode-hook 'auto-complete-mode)
(add-hook 'python-mode-hook 'jedi:ac-setup)
2.2 Навигация по проекту
Для передвижения по директории проекта, предлагается использовать emacs-nav
M-x: el-get-install emacs-nav
3. Дополнительные пакеты
Дополнительно можно установить модуль для автоматического подсвечивания ошибок и автоматического закрытия кавычек и скобок.Правим .emacs:
(add-hook 'after-init-hook #'global-flycheck-mode)
(require 'autopair)
(autopair-global-mode)
Отмечу, что последний (autopair) может создать очень много скобок или кавычек при копи-пасте, для отключения оного следует удалить две последние строчки.
Для того, что бы использовать ipython как оболочку по-умолчанию, добавляем строчки
(setq-default py-shell-name "ipython")
(setq-default py-which-bufname "IPython")
Заключение
Вот и все, из простого редактора мы получили, по функциональным возможностям, IDE с собственным менеджером пакетов и возможностью расширения.
Спасибо всем кто дочитал до конца.
Автор: ex0hunt