Перейти к содержимому

Как установить emacs на windows

  • автор:

GNU Emacs

Emacs

Emacs runs on several operating systems regardless of the machine type. The main ones are: GNU, GNU/Linux, FreeBSD, NetBSD, OpenBSD, MacOS, MS Windows and Solaris.

You can download GNU Emacs releases from a nearby GNU mirror; or if automatic redirection does not work see the list of GNU mirrors, or use the main GNU ftp server.

GNU Emacs source code and development is hosted on savannah.gnu.org.

GNU/Linux

Most GNU/Linux distributions provide GNU Emacs in their repositories, which is the recommended way to install Emacs unless you always want to use the latest release.

If your GNU/Linux distribution includes a graphical package manager, this is often the easiest way to install Emacs. Please refer to the documentation for your distribution for full instructions on how to install a package.

You might prefer installing from the command-line. Here are some of the commands that various GNU/Linux distributions use to install a package named emacs .

guix package -i emacs
sudo apt-get install emacs
sudo pacman -S emacs
sudo dnf install emacs
sudo zypper install emacs

On some systems, the package name must include the Emacs version number, such as emacs-27.1 , instead of emacs .

BSDs

The BSDs provide GNU Emacs in their repositories, which is the recommended way to install Emacs unless you always want to use the latest release.

Nonfree systems

The reason for GNU Emacs’s existence is to provide a powerful editor for the GNU operating system. Versions of GNU, such as GNU/Linux, are the primary platforms for Emacs development.

However, GNU Emacs includes support for some other systems that volunteers choose to support.

The purpose of the GNU system is to give users the freedom that proprietary software takes away from its users. Proprietary operating systems (like other proprietary programs) are an injustice, and we aim for a world in which they do not exist.

To improve the use of proprietary systems is a misguided goal. Our aim, rather, is to eliminate them. We include support for some proprietary systems in GNU Emacs in the hope that running Emacs on them will give users a taste of freedom and thus lead them to free themselves.

Windows

GNU Emacs for Windows can be downloaded from a nearby GNU mirror; or the main GNU FTP server.
Mostly simply, download and run the emacs- version -installer.exe which will install Emacs and create shortcuts for you. Alternately, download emacs- version .zip then unzip, preserving the directory structure. You can then run bin\runemacs.exe or create a desktop shortcut to bin\runemacs.exe and start Emacs by double-clicking on that shortcut’s icon.

The Windows binaries are signed by Corwin Brust ECE7 7CF4 17C7 6C1A CFCE 7C2B 5B61 3551 1580 F007 .

MSYS2 users can install Emacs (64bits build) with the following:

pacman -S mingw-w64-x86_64-emacs

For the 32bits build, run:

pacman -S mingw-w64-i686-emacs

MacOS

Emacs can be installed on MacOS using Homebrew.

brew install --cask emacs
sudo port install emacs-app

The Emacs for OSX website also provides universal binaries.

Copyright 2015-2023 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110, USA

This website is licensed under the CC BY-SA 4.0 License.

Using Emacs on Windows 10: An Installation Guide

Instructions on how to install and use Emacs on Windows 10, including supporting packages. Create a distraction-free content-creation machine.

This article describes how to install Emacs on Windows 10, including supporting packages. This article is part of the Emacs Writing Studio which explains how to use Emacs to undertake research and write and publish articles, books, and websites.

Installing Emacs on Windows 10

There is more than one method to install Emacs on your Windows 10 computer. The easiest method is to download Emacs for Windows directly from its makers on the GNU website.

In most cases, you need the emacs-$VERSION-x86_64-installer.exe , where version is currently 27.2. This file contains a 64-bit build of Emacs with dependencies as an installer package.

Download this file and run the program to install Emacs on your system. You can run Emacs like any other Windows software.

To upgrade Emacs in future, simply repeat this process.

Home directory

The next step is to set the default folder for Emacs by setting the HOME variable. This instructs Emacs to use the C:\users\username\ folder as your home location. Open Powershell in administrator mode and enter this line:

setx HOME %USERPROFILE%

This variable is not necessary, but other configurations on this website use it.

Emacs configuration folder

The location of the configuration folder depends on your operating system and Emacs version. If you are unsure where to store the init.el file, then you can use the Emacs help functionality.

Type C-h v for help on variables and type user-emacs-directory and enter. The help buffer that now appears provides the correct folder name. You can close this buffer by pressing q.

Read my article on configuring Emacs for more information.

Spellcheck

The Flyspell package performs spell checking on Emacs. Read the distraction-free writing for more information on how to configure spell-checking.

The ezwinports project maintains a large collection of useful open source software compiled for Windows computers, including Hunspell.

To install Hunspell on Windows, download the software from ezwinports. Extract the files in a folder on your drive, for example: C:\ProgramData\ezwinports\ .

You need to add the bin folder to your path environment variable. A simple workaround is to add the full path of the Hunspell variable to your configuration, as such:

(setq-default ispell-program-name "C:/ProgramData/ezwinports/bin/hunspell")

Note that Emacs uses a forward slash / , not the Windows backslash \ .

The binary distribution includes dictionaries for US English and UK English. You can find the dictionaries for other languages on the Internet; install them into share/hunspell directory in your Hunspell installation directory.

Using Emacs on Windows 10

This article only discussed how to install Emacs on Windows 10. The other articles on this website show you how to configure Emacs and how to use Emacs to research, write and publish articles, books and websites.

Emacs is a malleable system, so everybody will have their personal preferences to undertake a task. Any article on how to be productive with Emacs is thus opinionated. If you have a different way of doing things, please share your views and leave a comment below, or complete the contact form to send me an email.

Emacs on Windows

Давно уже не использовал 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 clone git://github.com/technomancy/emacs-starter-kit.git 

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

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

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

(setq make-backup-files nil) ; stop creating those backup~ files (setq auto-save-default nil) ; stop creating those #auto-save# files  ;;; WINDOW SPLITING (global-set-key (kbd "M-2") 'split-window-vertically) ; was digit-argument (global-set-key (kbd "M-1") 'delete-other-windows) ; was digit-argument (global-set-key (kbd "M-s") 'other-window) ; was center-line  (set-language-environment 'UTF-8) (setq default-input-method 'russian-computer) (set-selection-coding-system 'windows-1251) (set-default-coding-systems 'windows-1251) (prefer-coding-system 'windows-1251)  (setq visible-bell nil)  (global-set-key [(control tab)] 'previous-buffer) (global-set-key [(control shift tab)] 'next-buffer)  ;; sample easy shortcuts  (global-set-key (kbd "") 'find-file) ; Open file or dir (global-set-key (kbd "") 'ibuffer) ; list buffers  (global-set-key (kbd "") 'kill-this-buffer) ; Close file 

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

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

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

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

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.
  • Light Table;
  • Sublime Text;
  • Atom от GitHub.

Да. Вы не ошиблись. Фильм «Трон: Наследие». GNU Emacs используют и там. Кто бы мог подумать…

Забыл предупредить: я пишу на Common Lisp (ещё один диалект языка Lisp), поэтому часть материала будет про то, как превратить Emacs в полноценную IDE с картами и девушками для этого языка программирования. Хороший пример, к стати…

Установка

  • скачать архив с официального сайта;
  • создать директорию C:\emacs\ и распаковать в него скаченный архив;
  • запустить файл C:\emacs\bin\addpm.exe (создаст пункт в меню Пуск для запуска Emacs).

    в терминале выполнить команду:

sudo aptitude install emacs emacs-goodies-el 
  • посмотри тут;
  • или здесь;
  • можно глянуть вот сюда.

Настройка

Есть, как минимум, четыре способа настройки Emacs:

  • написанием конфигурационного файла .emacs;
  • через меню программы;
  • с помощью команды M-x customize (C-x означает Control-x, M-x означает Meta-x, где Meta может означать: «нажать-отпустить Esc» или «нажать-держать Alt». (например, Meta-x это или нажать Esc, затем x, или, удерживая Alt, нажать x);
  • спереть позаимствовать чужой файл .emacs и начать работать (не советую).

Файл конфигурации .emacs

После того, как Вы успешно установили GNU Emacs на свой компьютер, необходимо создать файл с названием .emacs и уже в нем прописать основные настройки.
Обозначения, используемые в статье (повторение — мать учения):

  • C-a: Ctrl-a;
  • M-a: Meta-a (Если у Вас нет клавиши Meta (Alt), используете клавишу Esc);
  • C-M-a: Ctrl-Meta-a.

Для начала, расскажем Emacs о том, в какой операционной системе он запустился. Для этого напишем на elisp две функции, которые нам в этом помогут:

;; System-type definition (defun system-is-linux() (string-equal system-type "gnu/linux")) (defun system-is-windows() (string-equal system-type "windows-nt"))

Теперь, вызывая эти функции как условия для операторов ветвления, мы можем настроить кроссплатформенный файл конфигурации для Emacs (результатом наших трудов будет файл .emacs, который прекрасно работает в ОС MS Windows и дистрибутивах GNU/Linux. На Mac OS X не проверял).

IDE для Common Lisp

Для превращения Emacs в полноценную среду разработки для языка Common Lisp нам понадобится два пакета:

  • реализация Common Lisp. Я выбрал SBCL;
  • Slime — режим Emacs для разработки приложений на языке Common Lisp.
  • скачать SBCL;
  • установить в C:\sbcl\ скаченный SBCL;
  • скачать Slime;
  • разместить в C:\slime\ скаченный Slime.
sudo aptitude install slime sbcl

Поехали дальше

Если Вы счастливый пользователь Mac OS X или дистрибутива GNU/Linux, то Emacs полезно запустить как сервер:

;; Start Emacs as a server (when (system-is-linux) (require 'server) (unless (server-running-p) (server-start))) ;; запустить Emacs как сервер, если ОС - GNU/Linux 

Далее, укажем Emacs пути по которым но сможет найти установленные дополнения (в частности, пакеты Slime и SBCL):

;; MS Windows path-variable (when (system-is-windows) (setq win-sbcl-exe "C:/sbcl/sbcl.exe") (setq win-init-path "C:/.emacs.d") (setq win-init-ct-path "C:/.emacs.d/plugins/color-theme") (setq win-init-ac-path "C:/.emacs.d/plugins/auto-complete") (setq win-init-slime-path "C:/slime") (setq win-init-ac-dict-path "C:/.emacs.d/plugins/auto-complete/dict")) ;; Unix path-variable (when (system-is-linux) (setq unix-sbcl-bin "/usr/bin/sbcl") (setq unix-init-path "~/.emacs.d") (setq unix-init-ct-path "~/.emacs.d/plugins/color-theme") (setq unix-init-ac-path "~/.emacs.d/plugins/auto-complete") (setq unix-init-slime-path "/usr/share/common-lisp/source/slime/") (setq unix-init-ac-dict-path "~/.emacs.d/plugins/auto-complete/dict"))

Давайте расскажем Emacs о том, кто мы такие (мало-ли, решите через Emacs почту отправлять или в jabber‘e переписываться. ):

;; My name and e-mail adress (setq user-full-name "%user-name%") (setq user-mail-adress "%user-mail%")

Мой любимый dired-mode. Настроим его:

;; Dired (require 'dired) (setq dired-recursive-deletes 'top) ;; чтобы можно было непустые директории удалять. 

Теперь можно запустить dired-mode комбинацией клавиш C-x d. Для удаления папки в dired-mode наведите курсор на эту папку, нажмите d, затем x. Чтобы убрать с папки отметку на удаление нажмите u.

Замечательный способ «прыгать» по определениям функций почти для всех языков программирования — Imenu. Предположим, что у Вас файл с программой на 100500 строк с кучей функций. Не беда! Нажимаем F6 и в минибуфере вводим часть имени искомой функции и TAB‘ом дополняем. Нажали Enter — и мы на определении искомой функции:

;; Imenu (require 'imenu) (setq imenu-auto-rescan t) ;; автоматически обновлять список функций в буфере (setq imenu-use-popup-menu nil) ;; диалоги Imenu только в минибуфере (global-set-key (kbd "") 'imenu) ;; вызов Imenu на F6 

Пишем название открытого буфера в шапке окна:

;; Display the name of the current buffer in the title bar (setq frame-title-format "GNU Emacs: %b")

Помните, что мы определили пути, по которым Emacs ищет дополнения и внешние программы? Пусть «пройдется» по этим путям (где дополнения) при запуске:

;; Load path for plugins (if (system-is-windows) (add-to-list 'load-path win-init-path) (add-to-list 'load-path unix-init-path))

Еще не забыли, что Emacs предоставляет Вам прекрасную среду для plain/text заметок (organizer), ведения справочной информации, управления проектами, организации базы знаний и т.д. — org-mode? Настроим:

;; Org-mode settings (require 'org) ;; Вызвать org-mode (global-set-key "\C-ca" 'org-agenda) ;; поределение клавиатурных комбинаций для внутренних (global-set-key "\C-cb" 'org-iswitchb) ;; подрежимов org-mode (global-set-key "\C-cl" 'org-store-link) (add-to-list 'auto-mode-alist '("\\.org$" . Org-mode)) ;; ассоциируем *.org файлы с org-mode

Наведем аскетизм красоту — уберем экраны приветствия при запуске:

;; Inhibit startup/splash screen (setq inhibit-splash-screen t) (setq ingibit-startup-message t) ;; экран приветствия можно вызвать комбинацией C-h C-a 

Выделим выражения между <>,[],(), когда курсор находится на одной из скобок — полезно для программистов:

;; Show-paren-mode settings (show-paren-mode t) ;; включить выделение выражений между <>,[],() (setq show-paren-style 'expression) ;; выделить цветом выражения между <>,[],() 

В новых версиях Emacs внедрили electic-mod‘ы. Первый из них автоматически расставляет отступы (работает из рук вон плохо), второй — закрывает скобки, кавычки и т.д. Отключим первый (Python программисты меня поймут. ) и включим второй:

;; Electric-modes settings (electric-pair-mode 1) ;; автозакрытие <>,[],() с переводом курсора внутрь скобок (electric-indent-mode -1) ;; отключить индентацию electric-indent-mod'ом (default in Emacs-24.4) 

Хотим иметь возможность удалить выделенный текст при вводе поверх? Пожалуйста:

;; Delete selection (delete-selection-mode t)

Уберем лишнее: всякие меню, scroll-bar‘ы, tool-bar‘ы и т.п.:

;; Disable GUI components (tooltip-mode -1) (menu-bar-mode -1) ;; отключаем графическое меню (tool-bar-mode -1) ;; отключаем tool-bar (scroll-bar-mode -1) ;; отключаем полосу прокрутки (blink-cursor-mode -1) ;; курсор не мигает (setq use-dialog-box nil) ;; никаких графических диалогов и окон - все через минибуфер (setq redisplay-dont-pause t) ;; лучшая отрисовка буфера (setq ring-bell-function 'ignore) ;; отключить звуковой сигнал

Никаких автоматических сохранений и резервных копий! Только hardcore:

;; Disable backup/autosave files (setq make-backup-files nil) (setq auto-save-default nil) (setq auto-save-list-file-name nil) ;; я так привык. хотите включить - замените nil на t

Самое больное и сложное место в настройке — кодировки:

;; Coding-system settings (set-language-environment 'UTF-8) (if (system-is-linux) ;; для GNU/Linux кодировка utf-8, для MS Windows - windows-1251 (progn (setq default-buffer-file-coding-system 'utf-8) (setq-default coding-system-for-read 'utf-8) (setq file-name-coding-system 'utf-8) (set-selection-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8-unix) (set-terminal-coding-system 'utf-8) (prefer-coding-system 'utf-8)) (progn (prefer-coding-system 'windows-1251) (set-terminal-coding-system 'windows-1251) (set-keyboard-coding-system 'windows-1251-unix) (set-selection-coding-system 'windows-1251) (setq file-name-coding-system 'windows-1251) (setq-default coding-system-for-read 'windows-1251) (setq default-buffer-file-coding-system 'windows-1251)))

Включаем нумерацию строк:

;; Linum plugin (require 'linum) ;; вызвать Linum (line-number-mode t) ;; показать номер строки в mode-line (global-linum-mode t) ;; показывать номера строк во всех буферах (column-number-mode t) ;; показать номер столбца в mode-line (setq linum-format " %d") ;; задаем формат нумерации строк 

Продолжаем наводить красоту:

;; Fringe settings (fringe-mode '(8 . 0)) ;; органичиталь текста только слева (setq-default indicate-empty-lines t) ;; отсутствие строки выделить глифами рядом с полосой с номером строки (setq-default indicate-buffer-boundaries 'left) ;; индикация только слева ;; Display file size/time in mode-line (setq display-time-24hr-format t) ;; 24-часовой временной формат в mode-line (display-time-mode t) ;; показывать часы в mode-line (size-indication-mode t) ;; размер файла в %-ах 

Автоматический перенос длинных строк:

;; Line wrapping (setq word-wrap t) ;; переносить по словам (global-visual-line-mode t)

Определим размер окна с Emacs при запуске:

;; Start window size (when (window-system) (set-frame-size (selected-frame) 100 50))

Интерактивный поиск и открытие файлов? Пожалуйста:

;; IDO plugin (require 'ido) (ido-mode t) (icomplete-mode t) (ido-everywhere t) (setq ido-vitrual-buffers t) (setq ido-enable-flex-matching t)

Быстрая навигация между открытыми буферами:

;; Buffer Selection and ibuffer settings (require 'bs) (require 'ibuffer) (defalias 'list-buffers 'ibuffer) ;; отдельный список буферов при нажатии C-x C-b (global-set-key (kbd "") 'bs-show) ;; запуск buffer selection кнопкой F2

Цветовые схемы. Как без них? Для этого:

  • скачаем пакет color-theme для Emacs отсюда;
  • создадим директории .emacs.d/plugins/color-theme;
  • распакуем туда содержимое архива с темами;
  • расположить папку .emacs.d в:
    • для MS Windows в корень диска C:\.emacs.d
    • для GNU/Linux в домашнюю директорию ~/.emacs.d
    ;; Color-theme definition (defun color-theme-init() (require 'color-theme) (color-theme-initialize) (setq color-theme-is-global t) (color-theme-charcoal-black)) (if (system-is-windows) (when (file-directory-p win-init-ct-path) (add-to-list 'load-path win-init-ct-path) (color-theme-init)) (when (file-directory-p unix-init-ct-path) (add-to-list 'load-path unix-init-ct-path) (color-theme-init)))
    ;; Syntax highlighting (require 'font-lock) (global-font-lock-mode t) ;; включено с версии Emacs-22. На всякий. (setq font-lock-maximum-decoration t)
    ;; Indent settings (setq-default indent-tabs-mode nil) ;; отключить возможность ставить отступы TAB'ом (setq-default tab-width 4) ;; ширина табуляции - 4 пробельных символа (setq-default c-basic-offset 4) (setq-default standart-indent 4) ;; стандартная ширина отступа - 4 пробельных символа (setq-default lisp-body-indent 4) ;; сдвигать Lisp-выражения на 4 пробельных символа (global-set-key (kbd "RET") 'newline-and-indent) ;; при нажатии Enter перевести каретку и сделать отступ (setq lisp-indent-function 'common-lisp-indent-function)
    ;; Scrolling settings (setq scroll-step 1) ;; вверх-вниз по 1 строке (setq scroll-margin 10) ;; сдвигать буфер верх/вниз когда курсор в 10 шагах от верхней/нижней границы (setq scroll-conservatively 10000)

    Укоротить сообщения в минибуфере:

    ;; Short messages (defalias 'yes-or-no-p 'y-or-n-p)

    Общий с ОС буфер обмена:

    ;; Clipboard settings (setq x-select-enable-clipboard t)

    Настройки пустых строк в конце буфера:

    ;; End of file newlines (setq require-final-newline t) ;; добавить новую пустую строку в конец файла при сохранении (setq next-line-add-newlines nil) ;; не добавлять новую строку в конец при смещении ;; курсора стрелками

    Выделять результаты поиска:

    ;; Highlight search resaults (setq search-highlight t) (setq query-replace-highlight t)

    Перемещение между сплитами при помощи комбинаций M-arrow-keys (кроме org-mode):

    ;; Easy transition between buffers: M-arrow-keys (if (equal nil (equal major-mode 'org-mode)) (windmove-default-keybindings 'meta))

    Удалить лишние пробелы в конце строк, заменить TAB‘ы на пробелы и выровнять отступы при сохранении буфера в файл, автоматически:

    ;; Delete trailing whitespaces, format buffer and untabify when save buffer (defun format-current-buffer() (indent-region (point-min) (point-max))) (defun untabify-current-buffer() (if (not indent-tabs-mode) (untabify (point-min) (point-max))) nil) (add-to-list 'write-file-functions 'format-current-buffer) (add-to-list 'write-file-functions 'untabify-current-buffer) (add-to-list 'write-file-functions 'delete-trailing-whitespace)

    Пакет CEDET — работа с C/C++/Java (прекрасная статья Alex Ott’a по CEDET):

    ;; CEDET settings (require 'cedet) ;; использую "вшитую" версию CEDET. Мне хватает. (add-to-list 'semantic-default-submodes 'global-semanticdb-minor-mode) (add-to-list 'semantic-default-submodes 'global-semantic-mru-bookmark-mode) (add-to-list 'semantic-default-submodes 'global-semantic-idle-scheduler-mode) (add-to-list 'semantic-default-submodes 'global-semantic-highlight-func-mode) (add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode) (add-to-list 'semantic-default-submodes 'global-semantic-show-parser-state-mode) (semantic-mode t) (global-ede-mode t) (require 'ede/generic) (require 'semantic/ia) (ede-enable-generic-projects)

    Автодополнение ввода. Для этого:

    • скачаем пакет auto-complete для Emacs отсюда;
    • создадим директории .emacs.d/plugins/auto-complete;
    • распакуем туда содержимое архива с auto-complete;
    • расположить папку .emacs.d в:
      • для MS Windows в корень диска C:\.emacs.d
      • для GNU/Linux в домашнюю директорию ~/.emacs.d
      ;; Auto-complete plugin (defun ac-init() (require 'auto-complete-config) (ac-config-default) (if (system-is-windows) (add-to-list 'ac-dictionary-directories win-init-ac-dict-path) (add-to-list 'ac-dictionary-directories unix-init-ac-dict-path)) (setq ac-auto-start t) (setq ac-auto-show-menu t) (global-auto-complete-mode t) (add-to-list 'ac-modes 'lisp-mode) (add-to-list 'ac-sources 'ac-source-semantic) ;; искать автодополнения в CEDET (add-to-list 'ac-sources 'ac-source-variables) ;; среди переменных (add-to-list 'ac-sources 'ac-source-functions) ;; в названиях функций (add-to-list 'ac-sources 'ac-source-dictionary) ;; в той папке где редактируемый буфер (add-to-list 'ac-sources 'ac-source-words-in-all-buffer) ;; по всему буферу (add-to-list 'ac-sources 'ac-source-files-in-current-dir)) (if (system-is-windows) (when (file-directory-p win-init-ac-path) (add-to-list 'load-path win-init-ac-path) (ac-init)) (when (file-directory-p unix-init-ac-path) (add-to-list 'load-path unix-init-ac-path) (ac-init)))

      Настроим среду для Common Lisp — Slime:

      ;; SLIME settings (defun run-slime() (require 'slime) (require 'slime-autoloads) (setq slime-net-coding-system 'utf-8-unix) (slime-setup '(slime-fancy slime-asdf slime-indentation))) ;; загрузить основные дополнения Slime ;;;; for MS Windows (when (system-is-windows) (when (and (file-exists-p win-sbcl-exe) (file-directory-p win-init-slime-path)) (setq inferior-lisp-program win-sbcl-exe) (add-to-list 'load-path win-init-slime-path) (run-slime))) ;;;; for GNU/Linux (when (system-is-linux) (when (and (file-exists-p unix-sbcl-bin) (file-directory-p unix-init-slime-path)) (setq inferior-lisp-program unix-sbcl-bin) (add-to-list 'load-path unix-init-slime-path) (run-slime)))

      Настроим Bookmark — закладки, которые помогают быстро перемещаться по тексту:

      ;; Bookmark settings (require 'bookmark) (setq bookmark-save-flag t) ;; автоматически сохранять закладки в файл (when (file-exists-p (concat user-emacs-directory "bookmarks")) (bookmark-load bookmark-default-file t)) ;; попытаться найти и открыть файл с закладками (global-set-key (kbd "") 'bookmark-set) ;; создать закладку по F3 (global-set-key (kbd "") 'bookmark-jump) ;; прыгнуть на закладку по F4 (global-set-key (kbd "") 'bookmark-bmenu-list) ;; открыть список закладок (setq bookmark-default-file (concat user-emacs-directory "bookmarks")) ;; хранить закладки в файл bookmarks в .emacs.d 

      Собственно, всё! Можно нажать C-x C-s и сохранить файл .emacs. Куда положить файл .emacs и папку .emacs.d (если использовать пути из моего .emacs):

      • .emacs в C:\Users\%username%\AppData\Roaming\
      • папку .emacs.d в корень диска C:\
      • .emacs в домашнюю директорию: /home/%username%/
      • папку .emacs.d в домашнюю директорию: /home/%username%/

      image

      Полезные ссылки

      Множество полезных статей по GNU Emacs на Хабрахабр. Также есть серия замечательных скринкастов на YouTube про Emacs, опубликованных Дмитрием Бушенко:

      • Изучаем Emacs. Эпизод 01
      • Изучаем Emacs. Эпизод 02
      • Изучаем Emacs. Эпизод 03
      • Изучаем Emacs. Эпизод 04
      • Изучаем Emacs. Эпизод 05
      • Изучаем Emacs. Эпизод 06
      • Изучаем Emacs. Эпизод 07
      • Изучаем Emacs. Эпизод 08: Инструменты работы с ELisp-кодом
      • Изучаем Emacs. Эпизод 09: ediff, magit, psvn и emacs —daemon
      • Изучаем Emacs. Эпизод 10: Базовые возможности Org-mode, literate programming и экспорт в html/pdf
      • Изучаем Emacs. Эпизод 11: Средства работы с Clojure-кодом
      • Изучаем Emacs. Эпизод 12: Макросы, ООП, DSL
      • Изучаем Emacs: Эпизод 13. Управление проектами при помощи EDE

      Cерия скринкастов (на англ. языке) Emacs Rocks.

      Невероятно огромная, подробная и полезная статья (на англ. языке): Sacha Chua’s Emacs configuration.

      Огромное разнообразие цветовых тем для Emacs. Смотреть тут.

      Чтобы не оставить без внимания пользователей другого редактора — Vim, вот ссылка на мой .vimrc на GitHub. Там все подробно описано (если что, могу и по Vim статью написать. ).

      С нетерпением жду Ваших комментариев, уважаемые читатели. Надеюсь, Вы нашли что-то полезное/новое для себя.

      Да пребудет с Вами Emacs…

      Спасибо за внимание.

      • GNU Emacs
      • натройка
      • IDE Common Lisp.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *