Emacs настройка для windows

Обновлено: 03.07.2024

Давно уже не использовал Emacs. Давно ничего про него не писал. Раньше, во времена использования операционной системы Linux использовал Emacs для того, чтобы попытаться в нем разобраться. Найти себя, так сказать. Вроде даже удалось…

Однако по своей сути использование Emacs сводилось только к использованию некоторых Lisp-приложений для него, типа Gnus, jabber, w3m. Как редактор я его почти и не использовал. Увы. По сути, в то время не понял его философии.

Сейчас же у меня возникла необходимость использования редактора для Lisp-кода. Везде указывается лучший вариант использование связки Emacs + Slime. Решил вернуться к истокам и начать изучать Emacs с самого начала. Но тут возникла сложность в использовании его под Windows.

Расскажу, как решал эти проблемы и как настраивал свой редактор.

Во первых, как оказалось, сборок под Win32 довольное большое число. Перепробовал их множество, и в конце концов остановился на EmacsW32. По сути обычный Emacs, но имеющий некие свои особенности, упрощающие его использование под Windows. Список патчей приведен на указанной странице.

На мой взгляд это оптимальный вариант!

Установка очень проста, и не вызовет каких-то сложностей. Но установить мало, нужно еще настроить его. В последнее время процесс настройки Emacs очень сильно упростился благодаря появлению Emacs Starter Kit.

Тут правда возникает еще одна сложность – это использование GIT под Windows. Разбор материалов интернета указал на то, что существует два пути: использование msysgit и установка Cygwin, где в качестве одного из пакетов ставится GIT. Первый вариант я так и не попробовал, а вот второй с удовольствием поставил. Захотелось под рукой иметь еще и bash.

Теперь в своей домашней папке ( /home/username ) в запущенном Cygwin даем команду:

Можно конечно и просто скачать файлы в архиве, воспользовавшись соответствующей кнопкой на странице. Но затем придется переименовывать папки, а в данном случае получаем уже все в готовом виде. Да и GIT на машине никогда лишним не бывает.

Теперь просто переносим созданную папку .emacs.d в папку C:\Users\UserName\Application Data . Теперь можно вновь запускать Emacs и наслаждаться жизнью! По умолчанию все организовано довольно удобно и изменять мало что потребуется. Если же нужно что-то добавить свое, в папке .emacs.d создаем файл с именем UserName.el , где UserName – имя пользователя, под которым вы работаете в Windows.

Для себя я определил следующее:

Все изменения касаются только некоторых клавиатурных комбинаций и изменения в поведении редактора (используемая кодировка, автосохранение).

Минимум изменений, максимум удобства!

Все приведенные действия касаются операционной системы Windows 7, и в других версиях Windows пути могут отличаться.

В последующих статьях хочу рассказать именно про использование Emacs в повседневной жизни. То, чего раньше я старательно избегал. И то, к чему пришел сейчас вновь!

EMACS хорош в первую очередь тем, что это не просто текстовый редактор, а настоящий конструктор, из которого можно сделать как полноценную IDE для разработки практически на любом языке, так и издательскую систему или текстовый процессор. Основная фишка - возможность расширять возможности редактора путём написания сценариев на языке EMACS Lisp. К счастью, всё уже написано до нас, и лично мне ни разу не приходилось писать что-то своё, однако при этом я смог превратить EMACS в IDE для WEB- и Python-разработки. Да, эту статью я тоже пишу в нём.

Во-вторых, он быстр. Он не требует JRE для своей работы, написан на C и EMACS Lisp, запускается и работает очень быстро.

Это свободное ПО, что для обычного российского пользователя означает как раз "Free beer".

Он не перегружен меню, диалоговыми окнами, кучей разных панелей и т.д. Лаконичный интерфейс легко может быть расширен или сведён к пугающему минимализму - выбор за вами.

Огромная база готовых пакетов. Там есть практически всё, что нужно, от поддержки редких языков до веб-браузера и игр. Серьёзно!

Установка в Windows предельно проста - нужно зайти на этот сайт и скачать архив с последней версией. Распаковываем её в любое нужное место, находим в каталоге bin файл runemacs.exe и создаём для него ярлык на Рабочем столе.

Установка в Linux может быть чуть сложнее. Как правило, в Debian и Ubuntu LTS идёт устаревшая версия дистрибутива. Я рекомендую использовать не ниже 24.0, в противном случае часть пакетов (можно считать их плагинами) не будет работать. Если в официальном репозитории слишком старая версия, придётся собирать EMACS из исходных кодов, что заслуживает отдельной статьи. Здесь на этом останавливаться не буду.

Помимо самого EMACS необходимо иметь в системе установленную систему контроля версий Git. Пользователи Windows могут скачать здесь.

Оригинальные комбинации клавиш EMACS устарели. Нажимать [Ctrl] (в любом руководстве по EMACS эта клавиша обозначается как [C] ) мизинцем неудобно. Когда-то [Ctrl] располагался на месте сегодняшнего [Alt] , и пользоваться им было удобно, но времена мэйнфреймов давно прошли. Подробный разбор того, почему комбинации клавиш в EMACS такие, какие есть, и почему это плохо, производится здесь [EN]. Нет смысла изучать дефолтные настройки комбинаций клавиш, всё равно придётся потом переучитваться. Однако, в экстренных ситуациях может пригодиться как минимум две команды:

После установки и активации пакета ergoemacs-mode комбинации клавиш будут переопределены. Рекомендую сделать это как можно быстрее, т.к. отвыкнуть от Ctrl+X , Ctrl+C и Ctrl+V очень тяжело, да и нет смысла этого делать.

Минибуфер - самый маленький буфер, расположенный в нижней части окна EMACS. В него вводятся различные команды. Для входа в него следует использовать комбинацию клавиш [M-X] без установленного и включенного пакета ergoemacs-mode, либо [M-A] . После ввода команда запускается на выполнение нажатием [Enter] (в документации EMACS эта клавиша называется [RET] )

Пакет - аналог плагина в других редаторах и IDE. Представляет собой сценарий или набор сценариев на языке EMACS Lisp. Часть пакетов является встроенной в редактор и поставляется вместе с ним, другие нужно скачивать из репозитриев. Отметим, что сейчас практически не используется способ установки пакета ручным клонированием репозитория с GitHub, далее под репозиториями будут пониматься специализированные хранилища пакетов.

Основной режим - определяет поведение EMACS для буфера. От этого режима зависит поведение различных клавиатурных комбинаций и набор доступных дейстий. Например, при написании этой статьи я использую web-mode , что даёт подсветку синтаксиса, автоматическое форматирование и применение Emmet для создания разметки. Основной режим может быть лишь один (имеется пакет, позволяющий включить сразу несколько основных режимов для одного буфера, но я им ни разу не пользовался).

Дополнительный режим - в то время, как основной режим может быть лишь один, дополнительных режимов можно включить столько, сколько нужно. Например, сюда относятся средства проверки орфографии, возможность автокомплита, автоформатирование кода и т.д. Большая часть пакетов для EMACS работает именно в дополнительном режиме.

Настройка EMACS может производиться как минимум двумя способами.

Настройка через правку файла конфигурации .emacs

Основной файл настроек EMACS называется .emacs и располагается в домашнем каталоге пользователя. В случае с Windows это как правило каталог вроде этого:

Однако, можно переопределить домашний каталог для хранения настроек (важно понимать, что файл .emacs станет вашей прелессссстью, которую вы будете оберегать и лелеять), создав для текущего пользователя системную переменную под именем HOME , и указав в ней путь к каталогу, который следует считать домашним для EMACS (возможно, работает и для других программ из мира Linux, не проверял). У меня эта переменная выглядит так:

Кроме этого файла EMACS при работе создаёт так же создаёт в домашнем каталоге папку .emacs.d . В ней будут храниться скачанные пакеты, сниппеты, файлы .desktop и т.д. Не надо его удалять!

В любом случае, в наш .emacs следует поместить как минимум вот эти строки:

Первая строка указыает на то, что вместо ввода строк yes и no в ответы на запросы системы можно просто нажать [y] или [n] соответственно.

Чуть ниже идёт указание репозиториев для поиска пакетов. Репозиторий MELPA очень популярен и в Интернете, вы будете часто встречать отсылки именно к нему, но использовать его опасно, т.к. пакеты туда попадают прямо из ветки master с GitHub. Поэтому я предпочитаю MELPA-STABLE. Пусть пакеты старые и их гораздо меньше, зато ничего не сломается при очередном обновлении. Впрочем, в редких случаях я пользуюсь MELPA, например, если пакета вообще нет в STABLE или тот, что есть, слишком старый. Так же существует репозиторий MARMELADE, но я не вижу смысла его использовать, т.к. некоторые пакеты в нём даже более старые, чем в MELPA-STABLE.

Настройка через customize

В одной из версий EMACS в стандартную поставку стал входить пакет sustomize . Просто выполните одноименную команду, и попадете в буфер, где будет поле для поиска и множество гиперссылок для перехода к нужным настройкам. Отмечу лишь, что настройка некоторых параметров через customize конфликтует с ручной правкой .emacs , однако, в ряде случаев является более удобной. Некоторые параметры EMACS можно настроить только ручным редактированием .emacs , в customize вы просто не найдёте нужного раздела.

Указав в вашем .emacs репозитории так, как указано выше, перезапустите редактор (можно сделать и без перезапуска, но не буду усложнять) и выполните команду list-packages . Откроется буфер, содержащий список пакетов в доступных репозиториях. Выбор пакета для установки осуществляется нажатием клавиши [I] , отмена выбора - [U] , пометка на удаление - [D] . После того, как будет выбрано, что делать с пакетами, следует нажать клавишу X для запуска операций. EMACS установит и при необходимости выполнит компиляцию нужных пакетов.

В Emacs есть различные методы выравнивания.Для людей с обсессивно-компульсивным расстройством, таких как я, чей код нужно выровнять, чтобы хорошо выглядеть, им срочно нужен мощный редактор.После использования множества редакторов Emacs более удобен.

Подготовить каталог

Создайте новую папку на диске D Emacs_26.3 , В папке Emacs_26.3 Новое в .emacs.d Папка, подготовленная для хранения файлов конфигурации;

Новая пользовательская переменная HOME , Путь устанавливается к вновь созданной папке: D:\Emacs_26.3 。


распаковать файлы

Разархивируйте установочный пакет Emacs в D:\Emacs_26.3 Под содержанием


  • Распакуйте сжатый пакет spacemacs-master в .emacs.d В папке


Установить плагин

Запустите runemacs.exe, он автоматически установит часто используемые плагины, вам нужно запустить дважды runemacs.exe , При первом запуске в каталоге установки будет сгенерирован файл .spacemacs. После запуска, если этот файл сгенерирован, немедленно закройте его; затем измените китайский исходный код .spacemacs, чтобы установить подключаемый модуль быстрее.


Добавьте исходный код Университета Цинхуа в функцию defun dotspacemacs / user-init () в файле .spacemacs и запустите ее во второй раз. runemacs.exe。

Произошла ошибка

  • is not a safe directory because it is not owned by you (owner = nil (544))
  • warning: Шрифт Spacemacs по умолчанию "Source Code Pro" не существует
  • Emacs откроет файл с китайским содержимым, и он застрянет.

решение

  • Поскольку папка сервера создана другим пользователем, у нас нет разрешения на ее изменение, поэтому решение здесь - удалить и перестроить, чтобы вышеуказанная ошибка не возникла.
  • Измените файл

Основные функции в основном готовы к использованию. Ознакомьтесь с приведенными ниже полными подсказками по коду. На данный момент Emacs установлен успешно, и позже будут использоваться дополнительные подключаемые модули.

Сегодня мы установим в наш emacs все необходимое, начиная с настоящего комбайна, который называтся Cedet .

Cedet

Пакет Cedet объединяет в своем составе несколько пакетов, реализующих различную функциональность, но объединенных вокруг одной задачи по работе с исходным кодом на различных языках программирования.

Инсталляция

Компиляция в Emacs-e

После этого заходим туда и отдаем команду

Таким нетривиальным образом, через emacs, оказывается можно собрать и скомпилить cedet.

Настройка

После завершения компиляции добавляем в init.el следующие строки:

Теперь можно получить настоящее удовольствие при программировании!

Emacs Code Browser

Добавляем в CEDET EmacsCodeBrowser, который превращает emacs в многоязыковую IDE.

Инсталляция

Конфигурирование

Добавляем в конфиграционный файл Емакса следующие строчки:

После этого перезапускаем Емакс и даем команду <code>M-x ecb-byte-compile</code>, которая ускорит загрузку нашей среды программирования.

Теперь, чтобы запустить ECB можно нажать <code>C-x p</code> А чтобы скрыть <code>C-x</code> , Ну а если вы хотите вообще выключить ECB - <code>C-x j</code> При желании вы можете настроить свои комбинации клавиш.

Color-theme

Потом распаковываем в папку <code>

/.emacs.d/init.el добавляем следующий код:

Последнюю строчку можно заменить на любую из тем, которая вам понравится, их там очень много. Чтобы просмотреть некоторые из них выполните M-x color-theme-[TAB] и автодополнение вам поможет!

Здесь нужны некоторые пояснения. В емаксе есть переменная load-path , которая хранит список путей, где будут искаться расширения, при попытке их загрузить с помощью (require 'расширение) когда вы вызываете add-to-list вы добавляете к этому списку свой путь. После этого require найдет нужно расширение в файле "расширение.el" и выполнит его так же, как если бы оно было включено в init.el. Соответственно все определенные в этом расширении функции станут доступны.

Кстати, вы всегда можете посмотрель любую переменную, выполнив C-h v

Комментирование и поиск

Перед тем, как добавить следующее расширение улучшим наш Emacs еще двумя маленькими функциями. Первая из них позволяет удобно работать с комменариями - нужно просто нажать C-\ а вторая помогает искать текст. Испробуйте эти небольшие расширения самостоятельно (код лучше вставить до блока EXTENSIONS

Cua-mode

Когда вы запускаете Емакс вы видите перед собой окно текущего рабочего буфера, которое занимает почти весь экран и так называемый "минибуфер", в котором можно вводить разнообразные команды. Они разделены строкой состояния, в которой показана информация о текущих режимах работы Емакс.

Чтобы выйти в минибуфер и попробовать набрать так команду shell нажмите M-x shell. По историческим причинам М - значит Alt, то есть вы должны удерживая Alt нажать "x" и курсор переместиться в минибуффер, где вы сможете набрать shell и завершить набор нажатием Enter. После этого в рабочем буфере появится shell

Сейчас мы приступим к конфигурированию Емакса из самого Емакса. Используя shell создайте каталог "

/.emacs.d" а в нем файл "init.el" - это основной конфигурационный файл Емакса по умолчанию:

Теперь время открыть этот файл в Емаксе. Наберите C-x C-f и введите путь к файлу. Автодополнение работает при нажатии клавиши TAB

Начнем конфигурировать Емакс. Первое, что имеет смысл сделать человеку, привыкшему к стандартным комбинациям клавиш для копипастинга

  • это настроить их. Запишем в наш init.el следующее:

Родные комбинации Емакса ничуть не менее удобны, и постепенно вы откажетесь от cua-mode, но на первых порах проще работать так. Теперь после перезагрузки Емакса видновая копипаста будет работать. Впрочем, даже перезагрузка не требуется - поставьте курсор в конце каждой строки и нажмите C-x C-e и изменения будут применены сразу же!

Для тех же, кто готов вместе со мной идти до конца - расскажу о родной копипасте Емакса:

Копировать M-w
Вырезать C-w
Вставить C-y
Удалить от позиции курсора до конца строки C-k
Отменить последнее действие (Undo) C-_
Установить снять выделение C-Space

Emacs-Jabber

Инсталляция

Самый простой способ установить jabber - из репозиториев:

Но я решил взять более свежий пакет из официального git`a и следовать приведенным в файле README инструкциям

Настройка

В результате этих манипуляций у нас будет установленный свежий emacs-jabber и нам останется только прописать в наш конфиг следующие строки:

Теперь после загрузки обновленного конфига достаточно нажать <code>C-x C-j C-c</code> и ваш jabber внутри емакса будет запущен. В списке буферов появится jabber-roster с понятной инструкцией по добавлению и удалению контактов, а для чего-то более сложного всегда есть M-x jabber-[TAB]

Wanderlust.

Теперь, когда у нас есть в Емаксе мессенджер, никто не мешает подключить туда же и почту. Для Емакса написано несколько хороших клиентов, но я пока попробовал только WanderLust. Он оказался очень удобным и у меня пока нет желания переходить куда-то еще. Итак, начнем с установки:

Установка

У wanderlust-a неслабых размеров конфиг, причем начинать надо с конфигурирования почтовых ящиков в специальном файле

/.folder. Вот его содержимое (имена ящиков я заменил, чтобы спаммеры не пронюхали :):

Как видите все imap папки указываются в специальном формате. wanderlist так-же поддерживает и pop3, так что если у кого есть конфиг - welcome в комментарии. А теперь посмотрим, как конфигурируется все это добро в init.el

Конфигурирование

Как видите конфиг выглядит внушительно :) За рассшифровкой отдельных полей обращайтесь к документации. Если же у кого-нибудь из читателей есть конфиг подключения к какой-нибудь другой почте, кроме yandex-a и gmail-ла - пожалуйста поделитесь настройками со мной!

После конфигурирования почтовый клиент можно запускать командой M-x wl После того, как все пароли введены используйте команду M-x elmo-passwd-alist-save чтобы сохранить их.

Читайте также: