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 с собственным менеджером пакетов и возможностью расширения.
Спасибо всем кто дочитал до конца.
ссылка на оригинал статьи http://habrahabr.ru/post/188376/
Добавить комментарий