Расширения и настройки Emacs на каждый день
Emacs славится своей настраиваемостью и расширяемостью (и не только ими, конечно же). Однако для начинающего пользователя такое обилие настроек и дополнений может сильно напугать (меня напугало настолько, что я отложил изучение Emacs на пару лет!). Я попытаюсь кратко рассказать о настройках и дополнениях, которые делают моменты работы в Emacs ещё более счастливыми.
Сразу же открываю тайну! (Слово о репозитории расширений)
В свежих версиях Emacs (начиная с версии 24) имеется менеджер пакетов.
Самый настоящий.
В данной статье я буду пользоваться именно им для установки большинства расширений. Ничего, однако, не мешает вам установить данные расширения вручную, если у вас нет доверий к мейнтейнерам репозиториев с расширениями для Emacs.
Лично я предпочитаю использовать репозиторий MELPA. На сайте репозитория имеется веб-интерфейс для просмотра имеющихся расширений и их версий. Также можно посмотреть источник исходного кода расширения.
Чтобы добавить репозиторий, нужно открыть .emacs и добавить туда следующие строки:
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
Здесь нужно обратить внимание на то, что если в .emacs уже присутствует строка:
(package-initialize)
то указание на добавление нового репозитория должно идти до этой строки. Если такой строки в файле .emacs нет, то её лучше добавить.
Инициализацию пакетного менеджера можно выполнить и вручную. Для этого после запуска Emacs нужно выполнить:
M-x package-initialize
Итак, репозиторий расширений для Emacs добавлен и пакетный менеджер инициализирован.
Не будем спешно запускать Emacs и торопливо устанавливать расширения. Сначала я представлю Вашему вниманию еще несколько настроек, которые можно добавить в файл инициализации .emacs.
Разнообразные настройки Emacs, собранные с миру по нитке.
Открываем файл .emacs любимым редактором и, по желанию, добавляем туда следующие настройки:
-
Отключаем противный писк при ошибочных действиях в Emacs. Данная настройка вместо писка мигает стракой статуса.
(setq visible-bell t)
-
Настройка шрифта. Я предпочитаю Terminus
(set-face-attribute 'default nil :font "Terminus-12")
-
Отключение панели инструментов, панели меню и области прокрутки. Тру-емаксерам они не нужны, занимают много места не экране. После первичного освоения Emacs их можно смело отключить.
(tool-bar-mode -1) (menu-bar-mode -1) (scroll-bar-mode -1)
-
Переносим backup-файлы в другое место. Это делается строго по желанию и с осторожностью. Цель - чтобы создаваемые временные файлы Emacs не мешались в каталоге с открываемым файлом.
(setq backup-directory-alist `(("." . "~/.emacs_saves")))
-
Запуск в режиме сервера - очень полезно, если вы собираетесь открывать много окон Emacs или использовать Emacs в качестве основного текстового редактора. Добавляем в самое начало .emacs.
(server-start)
-
Интерактивный режим переключение буферов Emacs. Очень удобная и полезная вещь - при нажатии C-x b можно начинать вводить название буфера и редактор сам подскажет название нужного буфера.
(iswitchb-mode 1)
Расширения, которые я использую
Опишу кратко расширения, которые я использую. Все они могут быть установлены из репозитория, указанного в начале данной статьи.
- Auto-complete - удобное автодополнение, возможно написание своих словарей.
Для установки нужно в Emacs запустить установку пакета:
M-x package-install
А затем ввести название пакета:
auto-complete
И нажать Enter. Помните, что к вашим услугам в Emacs всегда имеется автодополнение. Помогает!
-
Org-mode - самый лучший органайзер\todo-лист, идет уже “в комплекте” с установленным Emacs. Ничего сравнимого по удобству для организации своей жизни вы не найдете нигде. Я использую его также для составления локальной базы знаний. Узнал что-нибудь - вноси в org-mode, запланировал что-нибудь - вноси в org-mode.
-
Robot-mode - помогает мне на работе. Подсветка синтаксиса при написании автотестов для использования в Robot Framework. Если вы по счастливой случайности используете Robot Framework, присмотритесь. Вместе с auto-complete данное расширение творит настоящие чудеса.
Загрузить Robot-mode можно на Github. Скачиваем robot-mode.el, укладываем его, например, в каталог .emacs.d в домашнем каталоге пользователя и добавляем следующую строку в .emacs
(load-file "~/.emacs.d/robot-mode.el")
В Emacs можно активировать robot-mode для текущего буфера командой
M-x robot-mode
Чтобы активировать robot-mode по умолчанию, например для *.txt файлов, в .emacs нужно добавить следующие строки.
(add-to-list 'auto-mode-alist '("\.txt\'" . robot-mode))
Есть возможность поменять .txt на любое другое расширение. Я на работе использую .robot.
-
Perspective - аналог рабочих столов в Emacs. Переключаться между уже расположенными буферами с открытыми файлами.
-
ECB - Emacs Code Browser. Удобный режим работы Emacs, при котором буферы располагаются как в каждой уважающей себя IDE. Удобная штука, но не очень хорошо работает одновременно с Perspective.