Установка emacs под windows
Войти
Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal
Устанавливаем Emacs в Windows
В своё время, когда я увлекался Линуксом, я часто пользовался GNU Emacs. Особенно любил использовать его на ноутбуке в отпуске: знакомые и родственники приходили в дикий восторг, когда я показывал им, на что способен текстовый редактор )))
И уже тогда я задумывался над тем, а нету ли сборки этой программы для Windows? К сожалению, руки дошли только сейчас, ведь оказалось, что Emacs для окошек есть. Я решил установить его немедля. Задача оказалась не очень простой, выявились некоторые нюансы. В рунете информации по установке я не нашел, поэтому и написал эту статью, чтобы желающие попробовать Emacs не напрягали свой мозг, читая заковыристые англоязычные мануалы.
Описанный мной способ подходит для Windows XP и Windows 7, вполне вероятно, что и для Vista тоже.
Для установки нам потребуется полный архив с дистрибутивом, например emacs-22.3-bin-i386.zip, скачать его можно с ftp-сервера GNU:
http://ftp.gnu.org/gnu/windows/emacs/
Содержимое архива необходимо распаковать в папку C:\emacs. Для того, чтобы программа запускалась корректно, в этой папке нужно создать каталог emacs.d, поместить в него файл init.txt (http://www.claremontmckenna.edu/pages/faculty/alee/emacs/init.txt), и переименовать его в init.el
Затем следует настроить переменные среды. Для этого нужно открыть свойства системы, перейти на вкладку «Дополнительно», выбрать закладку «Переменные среды», и добавить переменную HOME со значением C:\emacs\
После этого выполняем перезагрузку компьютера, заходим в папку C:\emacs\bin и запускаем файл runemacs.exe (для удобства можно вывести ярлык на рабочий стол). Если всё было сделано правильно, на экране возникнет следующее:
Если вы спросите, а зачем всё это, есть же Word, или Open Office на худой конец, я отвечу просто: Tetris!)))
GNU Emacs. Статья, которую я так и не нашел…
Доброго времени суток, Читатель!
В данной статье хочу подробно рассказать про настройку текстового редактора GNU Emacs.
Операционная система GNU Emacs — программируемый текстовый редактор для программистов, написанный на программируемом языке программирования.
Для расширения Emacs используется диалект языка Lisp — Emacs Lisp.
Строго говоря, Emacs нельзя назвать просто текстовым редактором. Emacs — это интерпретатор языка Emacs Lisp, конструктор текстового редактора, заточенного именно под Вас. Малая часть программы реализована на языке Си (около 30% — отвечает за базовое взаимодействие с ОС, ввод-вывод, отрисовку окон), а весь основной функционал — на Emacs Lisp (далее, elisp). Именно такая архитектура отличает GNU Emacs от других профессиональных текстовых редакторов — он, до неприличия, расширяем.
Функционал этого редактора настолько огромен и разнообразен, что новичку в этой среде крайне сложно освоиться. Чего стоит только процесс настройки — на это могут уйти годы, или вся жизнь. Именно поэтому я решил написать эту статью — подробное руководство по начальной настройке Emacs, для тех кто:
- хочет начать использовать GNU Emacs, но не знает как;
- пишет на языках, поддержка которых в IDE оставляет желать лучшего или её вообще нет;
- пишет на разных языках, «программист-полиглот»;
- хочет иметь универсальную среду разработки на работе и дома, на нескольких компьютерах сразу;
- хочет иметь функциональную и мощную среду для plain/text заметок (organizer), ведения справочной информации, управления проектами, организации базы знаний и т.д. — org-mode;
- хочет автоматизировать процесс обработки большого числа текстовых файлов;
- хочет иметь нетребовательную к аппаратным ресурсам, кроссплатформенную среду для работы с любой текстовой информацией;
- хочет среду, которую можно без особых усилий, буквально «на лету», настроить под себя, свою конкретную задачу, расширить, самостоятельно добавив новый функционал;
- любит универсальность и расширяемость;
- пишет для web, на скриптовых языках: Python, Ruby, Perl и т.п.;
- хочет приобщиться к вечному, к Emacs — одному из самых долгоживущих проектов Open Source сообщества;
- etc.
Стоит сказать, что в современной IT-индустрии все чаще появляются различные амбициозные проекты, связанные с разработкой «текстовых редакторов XXI века», убийц замен Emacs и/или Vim:
- Light Table;
- Sublime Text;
- Atom от GitHub.
Ну что сказать… Удачи им в этом нелегком труде. А мы, пожалуй, займемся настройкой GNU Emacs.
Да. Вы не ошиблись. Фильм «Трон: Наследие». GNU Emacs используют и там. Кто бы мог подумать…
Забыл предупредить: я пишу на Common Lisp (ещё один диалект языка Lisp), поэтому часть материала будет про то, как превратить Emacs в полноценную IDE с картами и девушками для этого языка программирования. Хороший пример, к стати…
Установка
- скачать архив с официального сайта;
- создать директорию C:\emacs\ и распаковать в него скаченный архив;
- запустить файл C:\emacs\bin\addpm.exe (создаст пункт в меню Пуск для запуска Emacs).
Для дистрибутивов GNU/Linux (на примере deb-based дистрибутивов) есть четыре способа:
- в терминале выполнить команду:
Для Mac OS X:
- посмотри тут;
- или здесь;
- можно глянуть вот сюда.
На момент написания статьи последняя версия редактора — Emacs-24.4. Вот ее и берите для Mac OS X или MS Windows. Для GNU/Linux советую использовать ту версию, которая представлена в стандартных репозиториях Вашего дистрибутива.
Настройка
Есть, как минимум, четыре способа настройки Emacs:
- написанием конфигурационного файла .emacs;
- через меню программы;
- с помощью команды M-x customize (C-x означает Control-x, M-x означает Meta-x, где Meta может означать: «нажать-отпустить Esc» или «нажать-держать Alt». (например, Meta-x это или нажать Esc, затем x, или, удерживая Alt, нажать x);
сперетьпозаимствовать чужой файл .emacs и начать работать (не советую).
Мы не ищем легких путей! Будем писать конфигурационный файл на языке elisp!
Сказано — сделано!
Файл конфигурации .emacs
После того, как Вы успешно установили GNU Emacs на свой компьютер, необходимо создать файл с названием .emacs и уже в нем прописать основные настройки.
Обозначения, используемые в статье (повторение — мать учения):
- C-a: Ctrl-a;
- M-a: Meta-a (Если у Вас нет клавиши Meta (Alt), используете клавишу Esc);
- C-M-a: Ctrl-Meta-a.
Итак, запускаем Emacs. С помощью комбинации клавиш C-x C-f создаем новый файл .emacs и начинаем в нем писать. Не обижайтесь, но вдаваться в синтаксис языка elisp не стану — это превратит статью в монстра. В конце просто приведу ссылки на необходимые ресурсы.
Для начала, расскажем Emacs о том, в какой операционной системе он запустился. Для этого напишем на elisp две функции, которые нам в этом помогут:
Теперь, вызывая эти функции как условия для операторов ветвления, мы можем настроить кроссплатформенный файл конфигурации для Emacs (результатом наших трудов будет файл .emacs, который прекрасно работает в ОС MS Windows и дистрибутивах GNU/Linux. На Mac OS X не проверял).
IDE для Common Lisp
Для превращения Emacs в полноценную среду разработки для языка Common Lisp нам понадобится два пакета:
- реализация Common Lisp. Я выбрал SBCL;
- Slime — режим Emacs для разработки приложений на языке Common Lisp.
Если Вы пользователь ОС MS Windows и, вдруг, пишете на Common Lisp, то Вам нужно:
- скачать SBCL;
- установить в C:\sbcl\ скаченный SBCL;
- скачать Slime;
- разместить в C:\slime\ скаченный Slime.
На GNU/Linux все проще: выполнить из командной строки:
Поехали дальше
Если Вы счастливый пользователь Mac OS X или дистрибутива GNU/Linux, то Emacs полезно запустить как сервер:
Далее, укажем Emacs пути по которым но сможет найти установленные дополнения (в частности, пакеты Slime и SBCL):
Давайте расскажем Emacs о том, кто мы такие (мало-ли, решите через Emacs почту отправлять или в jabber‘e переписываться. ):
Мой любимый dired-mode. Настроим его:
Теперь можно запустить dired-mode комбинацией клавиш C-x d. Для удаления папки в dired-mode наведите курсор на эту папку, нажмите d, затем x. Чтобы убрать с папки отметку на удаление нажмите u.
Замечательный способ «прыгать» по определениям функций почти для всех языков программирования — Imenu. Предположим, что у Вас файл с программой на 100500 строк с кучей функций. Не беда! Нажимаем F6 и в минибуфере вводим часть имени искомой функции и TAB‘ом дополняем. Нажали Enter — и мы на определении искомой функции:
Пишем название открытого буфера в шапке окна:
Помните, что мы определили пути, по которым Emacs ищет дополнения и внешние программы? Пусть «пройдется» по этим путям (где дополнения) при запуске:
Еще не забыли, что Emacs предоставляет Вам прекрасную среду для plain/text заметок (organizer), ведения справочной информации, управления проектами, организации базы знаний и т.д. — org-mode? Настроим:
Наведем аскетизм красоту — уберем экраны приветствия при запуске:
Выделим выражения между <>,[],(), когда курсор находится на одной из скобок — полезно для программистов:
В новых версиях Emacs внедрили electic-mod‘ы. Первый из них автоматически расставляет отступы (работает из рук вон плохо), второй — закрывает скобки, кавычки и т.д. Отключим первый (Python программисты меня поймут. ) и включим второй:
Хотим иметь возможность удалить выделенный текст при вводе поверх? Пожалуйста:
Уберем лишнее: всякие меню, scroll-bar‘ы, tool-bar‘ы и т.п.:
Никаких автоматических сохранений и резервных копий! Только hardcore:
Самое больное и сложное место в настройке — кодировки:
Включаем нумерацию строк:
Продолжаем наводить красоту:
Автоматический перенос длинных строк:
Определим размер окна с Emacs при запуске:
Интерактивный поиск и открытие файлов? Пожалуйста:
Быстрая навигация между открытыми буферами:
Цветовые схемы. Как без них? Для этого:
- скачаем пакет color-theme для Emacs отсюда;
- создадим директории .emacs.d/plugins/color-theme;
- распакуем туда содержимое архива с темами;
- расположить папку .emacs.d в:
- для MS Windows в корень диска C:\.emacs.d
- для GNU/Linux в домашнюю директорию
Укоротить сообщения в минибуфере:
Общий с ОС буфер обмена:
Настройки пустых строк в конце буфера:
Выделять результаты поиска:
Перемещение между сплитами при помощи комбинаций M-arrow-keys (кроме org-mode):
Удалить лишние пробелы в конце строк, заменить TAB‘ы на пробелы и выровнять отступы при сохранении буфера в файл, автоматически:
Пакет CEDET — работа с C/C++/Java (прекрасная статья Alex Ott’a по CEDET):
Автодополнение ввода. Для этого:
- скачаем пакет auto-complete для Emacs отсюда;
- создадим директории .emacs.d/plugins/auto-complete;
- распакуем туда содержимое архива с auto-complete;
- расположить папку .emacs.d в:
- для MS Windows в корень диска C:\.emacs.d
- для GNU/Linux в домашнюю директорию
Настроим среду для Common Lisp — Slime:
Настроим Bookmark — закладки, которые помогают быстро перемещаться по тексту:
Собственно, всё! Можно нажать C-x C-s и сохранить файл .emacs. Куда положить файл .emacs и папку .emacs.d (если использовать пути из моего .emacs):
- .emacs в C:\Users\%username%\AppData\Roaming\
- папку .emacs.d в корень диска C:\
GNU/Linux:
- .emacs в домашнюю директорию: /home/%username%/
- папку .emacs.d в домашнюю директорию: /home/%username%/
Мой .emacs можно скачать с моей странички на GitHub.
Полезные ссылки
Множество полезных статей по GNU Emacs на Хабрахабр. Также есть серия замечательных скринкастов на YouTube про Emacs, опубликованных Дмитрием Бушенко:
Cерия скринкастов (на англ. языке) Emacs Rocks.
Невероятно огромная, подробная и полезная статья (на англ. языке): Sacha Chua’s Emacs configuration.
Огромное разнообразие цветовых тем для Emacs. Смотреть тут.
Чтобы не оставить без внимания пользователей другого редактора — Vim, вот ссылка на мой .vimrc на GitHub. Там все подробно описано (если что, могу и по Vim статью написать. ).
С нетерпением жду Ваших комментариев, уважаемые читатели. Надеюсь, Вы нашли что-то полезное/новое для себя.
Настройка Emacs для разработки на Erlang в Windows
Настройка Emacs + Erlang Mode + Distel(debug, code assist ) + Flymake(компиляция на лету с выводом ошибок) + Wrangler(рефакторинг) + ECB(code browser) + TABBAR(табы для быстрого переключения между буферами в Emacs).
Настройка Emacs
1. Скачайте и установите Emacs для Windows http://ftp.gnu.org/gnu/emacs/windows/emacs-23.3-bin-i386.zip. Я выбрал директорию для установки — D:\Dev\emacs-23.3
2. Создайте/Установите переменную окружения (environment variable) HOME в директорию установки Emacs. В моем случае это D:\Dev\emacs-23.3
3. В директории, на которую указывает переменная HOME, создайте папку “.emac.d” (без кавычек) Из Проводника этого сделать не получится, но из cmd делается простой командой mkdir .emacs.d
4. В папке .emacs.d создайте файл init.el –файл настройки Emacs.Настройка Erlang Mode
1. Скачайте и установите Erlang для Windows (хотя я уверен, что Вы это уже сделали). На всякий случай ссылка www.erlang.org/download.html. Я установил Erlang в D:\Dev\erl5.8.2
2. Создайте/Установите переменную окружения (environment variable) ERLANG_HOME в директорию установки Erlang
3. Добавьте следующие строчки в init.el
(add-to-list ‘auto-mode-alist ‘(«\\.erl?$» . erlang-mode))
(add-to-list ‘auto-mode-alist ‘(«\\.hrl?$» . erlang-mode))(setq erlang-root-dir «D:/Dev/erl5.8.2»)
(setq erlang-man-root-dir «D:/Dev/erl5.8.2/erts-5.8.2/man»)
(setq load-path (cons «D:/Dev/erl5.8.2/lib/tools-2.6.6.2/emacs» load-path))
(setq exec-path (cons «D:/Dev/erl5.8.2/bin» exec-path))
(require ‘erlang-start)
4. Для проверки запустите Emacs и откройте любой .erl файл. У Вас в Main Menu должен появиться пункт “Erlang”.Настройка Distel
1. Скачайте Distel как zip архив github.com/massemanet/distel и распакуйте в .emacs.d
2. Скачайте и установите GNU Make for Windows http://gnuwin32.sourceforge.net/packages/make.htm
3. Запустите cmd и перейдите в .emacs.d/distel директорию и запустите команду make.
4. Добавьте следующие строчки в init.el(add-to-list ‘load-path «D:/Dev/emacs-23.3/.emacs.d/distel/elisp»)
(require ‘distel)
(distel-setup)(defvar inferior-erlang-prompt-timeout t)
(defvar inferior-erlang-prompt-timeout t)
(setq inferior-erlang-machine-options ‘(«-sname» «emacs»))
(setq erl-nodename-cache
(make-symbol
(concat
«emacs@»
(car (split-string (shell-command-to-string «hostname»))))))5. В директории HOME создайте файл .erlang (в cmd напишите echo. 2> .erlang)и поместите в него следующие строчки
code:add_pathsz([«D:/Dev/emacs-23.3/.emacs.d/distel/ebin»]).
(точка в конце обязательна)6. В директории HOME создайте файл .erlang.cookie и поместите туда строчку emacs. Делается это командой echo emacs>.erlang.cookie.
7. Запустите Emacs и откройте .erl файл в меню Erlang должно появиться выпадающее меню Distel.Настройка Flymake
1. Создайте директорию flymake в .emacs.d
2. Добавьте в нее файл eflymake
#!/usr/bin/env escript
-export([main/1]).
main([File_Name]) ->
compile:file(File_Name, [warn_obsolete_guard, warn_unused_import, warn_shadow_vars, warn_export_vars, strong_validation, report, ]).
3. Добавьте в init.el
(require ‘flymake)
(setq flymake-log-level 3)
(setq erlang-flymake-location «D:/Dev/emacs-23.3/.emacs.d/flymake/eflymake»)(defun flymake-erlang-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
‘flymake-create-temp-inplace))
(local-file (file-relative-name temp-file
(file-name-directory buffer-file-name)))
(escript-exe (concat (getenv «ERLANG_HOME») «\\bin\\escript.exe»))
(eflymake-loc (expand-file-name erlang-flymake-location)))
(if (not (file-exists-p eflymake-loc))
(error «Please set erlang-flymake-location to an actual location.»)
(list escript-exe(list eflymake-loc local-file)))))(add-to-list ‘flymake-allowed-file-name-masks ‘(«\\.erl\\'» flymake-erlang-init))
(defun my-erlang-mode-hook ()
(flymake-mode 1))
(add-hook ‘erlang-mode-hook ‘my-erlang-mode-hook)Настройка Wrangler
1. Скачайте и установите в .emacs.d\wrangler http://www.cs.kent.ac.uk/projects/forse/wrangler/wrangler-1.0/Wrangler_Setup.exe
По непонятным причинам после установки в директории ebin не хватало половины файлов, которые Wrangler потребовал для работы. Пришлось скачать сорцы и скомпилировать их из cygwin и заменить файлы в директории ebin на скомпилированные. Детальное описание этого шага я пропущу. В конце статьи будет ссылка на архив моей директории .emacs.d где уже будет скомпилированный wrangler.
2. В файл .erlang (напомню что он находится в директории куда указывает переменная HOME ) добавьте строчку code:add_path(«D:/Dev/emacs-23.3/.emacs.d/wrangler/ebin»).
(и снова точка обязательна).
3. В init.el добавьте
(add-to-list ‘load-path «D:/Dev/Wrangler/elisp»)
(setq exec-path (cons «D:/Dev/Wrangler/bin» exec-path))
(require ‘wrangler)
4. Запустите Emacs откройте .erl файл и нажмите Ctrl-C + Ctrl-R. В Main Menu должно появиться меню Wrangler.Настройка ECB (CEDET который нужен для ECB уже включен в Emacs версии 23.2+ )
1. Скачайте последний cvs-snapshot ECB (релиз 2.40 не работает со встроенным CEDET) http://ecb.sourceforge.net/cvs_snapshots/ecb.tar.gz и распакуйте в .emacs.d/ecb-snap
2. Добавьте в init.el
(add-to-list ‘load-path «D:/Dev/emacs-23.3/.emacs.d/ecb-snap»)
(require ‘ecb)
3. Запустите Emacs и нажмите Meta-x (для Windows это Shift-Ecs – x или Левый Alt-x) в появившейся строке ввода введите ecb-activate и нажмите Enter.Настройка Tabbar
1. Загрузите tabbar.el http://emhacks.cvs.sourceforge.net/viewvc/emhacks/emhacks/tabbar.el в директорию .emacs.d
2. Добавьте (require ‘tabbar) in init.el
3. Запустите Emacs и нажмите Meta-x в появившейся строке ввода введите tabbar-mode и нажмите Enter.Теперь Ваш Emacs превратился в IDE для разработки на Erlang. Рекомендации по тонкой настройке ECB, Distel и Wragler можно найти на сайтах разработчиков. При желании для flymake можно прикрутить модули flymake-cursor и rfringe.
Ссылки на мою .emacs.d директорию
Depositfile
2shared
Предупреждение: при установке Wrangler прописывает пути в файлах .el. Так что копирование содержимого папки не сработает, если Вы вдруг решили поставить Wrangler в директорию отличную от D:\Dev\emacs-23.3\.emacs.d\wranglerДанная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.