Emacs (исходный код можно посмотреть здесь) — это расширяемый текстовый редактор, который можно кастомизировать под свои нужды при помощи языка Emacs Lisp (Elisp).
Почему Emacs — это хороший выбор для написания кода на Python?
1) Emacs кастомизируется при помощи встроенного интерпретатора Lisp и менеджера пакетов. Менеджер пакетов под названием package.el имеет меню для управления установкой. Самый большой репозиторий пакетов Emacs — это Melpa, который обеспечивает автоматические обновления.
2) Макросы полезны для выполнения рутинных действий в Emacs. Макрос — это просто записанная последовательность действий (комбинаций клавиш). Он может быть сохранен и выполнен позже.
3) Хуки (hooks) — это переменные Lisp, содержащие списки вызываемых функций. Они обеспечивают механизм расширения для Emacs. При помощи хуков можно перехватывать определённые события. Например, kill-emacs-hook
запускается перед выходом из Emacs, поэтому в этот хук можно добавить произвольный набор функций для выполнения необходимых действий до завершения выхода.
Ресурсы по Python и Emacs
Emacs не зависит от языка программирования, поэтому потребуются некоторые усилия, чтобы настроить его в качестве среды разработки Python. Следующие ресурсы помогут вам ознакомиться с настройками, созданными другими разработчиками для работы с Python.
- «Emacs — the Best Python Editor?» — это продолжение отличной серии статей от Real Python, в которой показано, как начать работу с редакторами. В дополнение к этой статье о Emacs, есть также статьи, описывающие настройку Vim и Sublime Text 3 для разработки на Python.
- Python-разработчики часто используют reStructuredText (RST) для документирования проектов. Руководство «Emacs Support for ReStructuredText» поможет вам правильно настроить среду для работы с файлами RST.
- «Emacs as a Python IDE» — это видео, в котором показано, как настроить автозавершение кода, просмотр документации и другие вещи в среде Emacs.
- «How do you create a robust Python IDE with Emacs (as the Text editor)» — это тред Stack Exchange, в котором высказываются мнения о том, как лучше всего настроить Emacs для эффективной разработки на Python.
- «Tricked out emacs for python coding» — это краткое руководство по работе с документами ReStructuredText. В нем также рассматривается добавление инструментов статического анализа кода на Python в среду Emacs.
Ресурсы по Emacs
Emacs, как и любой другой мощный инструмент, требует определенной практики для правильного использования. Эти ресурсы содержат советы по освоению самого редактора, а не конкретные рекомендации по настройке среды Python.
- «GNU Emacs Manual»— это официальное подробное руководство по GNU Emacs.
- Emacs is sexy! — это целый сайт с инструкциями по установке, шпаргалками и другими материалами для изучения Emacs.
- Emacs Redux — это блог с советами и рекомендациями по эффективному использованию Emacs.
- Emacs Rocks— серия видеоуроков по Emacs.
- «Absolute Beginner’s Guide to Emacs» и «Emacs as a Python IDE» — пара потрясающих пошаговых руководств от Джессики Хэмрик по настройке Emacs для разработки в общем и для разработки на Python в частности.
- В руководстве «Compiling and running scripts in Emacs» рассказывается, как настроить Emacs для запуска кода прямо из редактора.
- What the .emacs.d?! предоставляет множество советов для оптимизации рабочего процесса в Emacs.
- «Using Emacs Series» — это еще одна серия видеоуроков по Emacs.
Кастомизация Emacs с помощью Elisp
Emacs можно полностью кастомизировать при помощи диалекта языка программирования Lisp — Emacs Lisp (Elisp). Пользователи могут самостоятельно создавать части Emacs — от отдельных функций до новых основных режимов. Возможность полностью модифицировать редактор является причиной старой шутки: «Emacs — хорошая операционная система, которой не хватает нормального текстового редактора».
Нижеперечисленные туториалы помогут вам изучить язык Elisp и использовать его для модификации Emacs.
- «An Introduction to Programming in Emacs Lisp» — это «официальный» вводный курс, предназначенный для новичков.
- «Emacs Lisp Guide» предназначен для разработчиков, которые уже некоторое время используют Emacs и хотят начать создавать расширения для редактора.
- Emacs Wiki содержит множество советов и ресурсов, которые помогут новичкам сориентироваться в Emacs Lisp.
- Руководство «Practical Emacs Lisp» содержит много полезного кода и фокусируется на примерах.
Пакеты Elisp
Elisp — это диалект языка программирования LISP, который Emacs использует для добавления и модификации функциональности в редакторе. В следующем списке перечислены библиотеки Elisp, которые многие разработчики, использующие Emacs, включают в свою среду разработки.
- Magit позволяет пользователю просматривать и изменять Git-репозитории из Emacs.
- company-mode предоставляет возможность автозавершения кода.
- Flycheck обеспечивает проверку синтаксиса.
- anaconda-mode (подходит только для разработки на Python) позволяет осуществлять навигацию по коду, поиск документации и автозавершение кода.
- web-mode.el — это пакет для редактирования веб-шаблонов, таких как Jinja. Он поддерживает многие шаблонизаторы Python, включая Django templates, Mako и Cheetah. Также web-mode.el поддерживает JavaScript-фреймворки для фронтенд-разработки.
Популярные пользовательские конфигурации
Существует множество пользовательских конфигураций Emacs, которые объединяют пользовательские пакеты и библиотеки Elisp для создания мощной интегрированной среды разработки. Мы рекомендуем попробовать настроить Emacs самостоятельно, прежде чем погружаться в любую из этих конфигураций. Так вам легче будет изучить базовый Emacs, не отвлекаясь на кастомизацию.
- Prelude — это расширенный дистрибутив Emacs версии 24.
- A reasonable Emacs config — конфигурация Emacs с расширенной поддержкой многих языков программирования, автозавершением кода, проверкой синтаксиса и другими плюшками.
- Emacs settings — это репозиторий конфигураций, используемых в скринкастах Emacs Rocks.
- Spacemacs объединяет расширяемость Emacs и эргономичные функции редактирования текста Vim.