- PVSM.RU - https://www.pvsm.ru -
Как известно, существует множество решений которые позволяют сделать из «консольного» редактора (vim/emacs) более-менее удобную IDE для языка Python. Представляю Вашему вниманию наиболее успешную, на мой взгляд, реализацию среды разработкы в редакторе emacs на основе пакета python-jedi.el [1]. Отмечу, что бандл заменяющий rope(*-jedi) есть так же для vim, инстукцию по его настройке можно найти здесь [2].
Для настройки emacs следует знать о стандартном конфигурационном файле, который располагается в ~/.emacs и директории ~/.emacs.d куда мы будем добавлять плагины.
Так же следует ознакомиться с сокращениями и обозначений «горячих» клавиш. Таких как C(по-умолчанию Ctrl) и Meta(по-умолчанию Alt). Так же существуют определенные правила при написании комбинаций клавиш, так, например: C-h t
Данная команда означает, что надо одновременно нажать Ctrl и h, отпустить, затем t. Полный список «горячих» клавиш. [3]
После того как разобрались с основными клавишами и порядком их использования, можно приступать к превращению редактора в IDE.
Конечно, кроме python-jedi нам понадобятся еще такие пакеты как:
Сам же python-jedi, является расширенным авто-дополнением кода, т.е. в отличие от auto-complete, он умеет дополнять еще и тот код который вы еще не вводили в данном файле, например — дополнение импорта
Для простой и быстрой установки пакетов в 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)
Для корректной работы 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)
Для передвижения по директории проекта, предлагается использовать emacs-nav
M-x: el-get-install emacs-nav
Дополнительно можно установить модуль для автоматического подсвечивания ошибок и автоматического закрытия кавычек и скобок.Правим .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
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/46862
Ссылки в тексте:
[1] python-jedi.el: https://github.com/davidhalter/jedi
[2] найти здесь : http://unlogic.co.uk/posts/vim-python-ide.html
[3] Полный список «горячих» клавиш.: http://allhotkeys.com/emacs_hotkeys.html
[4] auto-complete: http://www.emacswiki.org/emacs/AutoComplete
[5] autopair: http://www.emacswiki.org/emacs/AutoPairs
[6] flycheck: https://github.com/lunaryorn/flycheck
[7] ido-settings.el: http://www.emacswiki.org/emacs/InteractivelyDoThings
[8] ipython: http://ipython.org/
[9] linum-mode: http://www.emacswiki.org/LineNumbers
[10] Источник: http://habrahabr.ru/post/188376/
Нажмите здесь для печати.