Глава 17. Редактор Emacs

Содержание
17.1. Запуск emacs
17.2. Буферы
17.3. Режимы
17.4. Основы редактирования
17.5. Сохранение файлов

В то время как vi (и его клоны) является без сомнения самым распространённым редактором в Unix-подобных системах, Emacs считается вторым хорошим редактором. Вместо различных “режимов”, применяемых в vi, для ввода команд в нём используются комбинации клавиш с Control и Alt. Подобным же образом вы можете использовать комбинации Control и Alt в текстовом процессоре и многих других приложениях для выполнения определённых функций. (Однако следует отметить, что эти команды редко совпадают; так во многих современных приложениях для копирования, вырезания и вставки текста используются Ctrl-C/ X/ V, а в Emacs для этого используются другие клавиши и несколько отличающийся принцип работы.)

Также, в отличие от vi, представляющего собой (отличный) редактор и больше ничего, Emacs - это программа с практически неограниченными возможностями. Emacs (по большей части) написан на Lisp - очень мощном языке программирования, характерной особенностью которого является то, что любая написанная на этом языке программа автоматически сама для себя является компилятором Lisp. Это означает, что пользователь может самостоятельно расширять возможности Emacs, а по сути писать новые программы “на Emacs'е”.

Как результат Emacs - это уже не просто редактор. Для Emacs существует много дополнительных пакетов (многие поставляются с исходными текстами), предоставляющих всевозможные функциональные возможности. Многие из них связаны с редактированием текста, что является первостепенной задачей Emacs'а, но не единственной. Например, для Emacs существуют различные программы для работы с электронными таблицами и базами данных, игры, почтовые клиенты, клиенты чтения новостей (самый популярный - Gnus) и др.

Существует две основные версии Emacs: GNU Emacs (эта версия входит в состав Slackware) и XEmacs. Последняя не является версией Emacs для X'ов. И Emacs, и XEmacs работают как консоли, так и в X'ах. XEmacs был начат как проект с более чистым кодом Emacs. В настоящее время обе версии активно разрабатываются, и между двумя командами разработчиков ведётся тесное сотрудничество. В данной главе не имеет особого значения, что вы используете - Emacs или XEmacs - разница между ними для обычного пользователя не настолько важна.

17.1. Запуск emacs

Emacs можно запустить из консоли, набрав emacs. Если вы работаете в X'ах, Emacs (обычно) запустится в своём собственном окне с меню в верхней части, в котором вы можете найти наиболее важные функции. При запуске Emacs сначала покажет сообщение с приветствием, а затем, через несколько секунд, вы окажетесь в буфере *scratch* (см. Разд. 17.2).

Вы также можете запустить Emacs с одновременной загрузкой в него существующего файла:

% emacs /etc/resolv.conf

Эта команда запустит Emacs и загрузит в него указанный файл, пропустив сообщение с приветствием.

17.1.1. Командные клавиши

Как упоминалось ранее, в Emacs для команд используются комбинации клавиш с Control и Alt. Условно принято записывать эти команды в виде C-буква и M-буква соответственно. Так, C-x означает Control+x, а M-x означает Alt+x. (Буква M используется вместо A потому, что изначально клавиша Alt не существовала, зато существовала клавиша Meta. Эта клавиша (Meta) была на всех клавиатурах, однако со временем исчезла, и в Emacs её функции заменила клавиша Alt.)

Многие команды Emacs состоят из последовательностей клавиш и их комбинаций. Например, C-x C-c (т.е. Control-x , после которого следует Control-c ) завершает работу Emacs, C-x C-s сохраняет текущий файл. Учтите, что C-x C-b - это не то же самое, что C-x b. Первая комбинация означает сначала нажатие Control-x, а затем Control-b, а вторая - нажатие Control-x, после которого следует просто 'b'.