Emacs как IDE для Python

от автора

Как известно, существует множество решений которые позволяют сделать из «консольного» редактора (vim/emacs) более-менее удобную IDE для языка Python. Представляю Вашему вниманию наиболее успешную, на мой взгляд, реализацию среды разработкы в редакторе emacs на основе пакета python-jedi.el. Отмечу, что бандл заменяющий rope(*-jedi) есть так же для vim, инстукцию по его настройке можно найти здесь .

image

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 

image

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 с собственным менеджером пакетов и возможностью расширения.
image
Спасибо всем кто дочитал до конца.

ссылка на оригинал статьи http://habrahabr.ru/post/188376/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *