Краткое руководство по Emacs

Содержание

Emacs — интегрированная среда для выполнения большого количества типов задач. Это значит, что все инструменты редактирования, поиска, обработки текста, работы с файлами, доступны вам в любой момент независимо от того что вы делаете: пишете код или текст диссертации, читаете документацию, выполняете системные задачи, составляете своё расписание или пишете электронное письмо.

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

378_v1.png

Figure 1: Настоящие программисты (xkcd.ru)

Если Emacs не может решить вашу задачу, вы можете использовать язык Emacs Lisp (Elisp) для настройки, автоматизации повседневных действий, а также для добавления новых или модификации существующих возможностей Emacs. Высокая расширяемость Emacs является излюбленной темой Интернет-фольклора (см. например рис. 1).

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

Скачать копию Emacs можно бесплатно с одного из серверов проекта GNU или установить с помощью пакетного менеджера вашего дистрибутива ОС. Пользователи Windows могут также установить Emacs в составе проекта Cygwin.

Комбинации клавиш

Для управления Emacs обычно используются сочетания клавиш, включающие в себя клавишу CONTROL (иногда отмечаемая как CTRL или CTL) или клавишу META (иногда помеченную как ALT или EDIT). Вместо того, чтобы каждый раз писать META или CONTROL, мы будем использовать следующие сокращения:

  • C-<chr> — следует удерживать клавишу CONTROL, пока набирается символ <chr>. Так, C-f означает: одновременно нажать клавиши CONTROL и f.
  • M-<chr> — следует удерживать клавишу META, пока набирается символ <chr>. Если нет клавиши META, ALT или EDIT, то нажмите <ESC>, отпустите ее, а потом наберите символ <chr>.

Многие действия в Emacs выполняются с помощью последовательного нажатия нескольких комбинаций клавиш. Например, открытие файла выполняется комбинацией C-x C-f. Выполнить такую комбинацию очень просто. Необходимо нажать CONTROL, затем x, затем f.

Если Emacs перестал реагировать на ваши команды, то вы можете вывести его из этого состояния нажав C-g. Вы можете также использовать C-g, чтобы остановить выполнение команд, которые слишком долго выполняются.

Работа с файлами и буферами

Для того, чтобы открыть файл нажмите C-x C-f, Emacs попросит вас ввести имя файла. Оно набирается в нижней строке экрана, которая называется мини-буфером. Для того, чтобы создать файл введите новое имя в мини-буфере.

Когда вы вводите имя файла (или любую другую информацию в мини-буфере), вы можете отменить текущую команду нажав C-g.

Чтобы сохранить содержимое файла нажмите C-x C-s. Если файл изменялся с момента открытия или последнего сохранения, в строке состояния (внизу окна Emacs) слева будут отображены два символа * (звёздочка), иначе на их месте отображаются символы - (дефис).

Открывать и сохранять файлы можно также через пункт меню File.

Каждому открытому файлу в Emacs соответствует так называемый буфер, отображающий содержимое этого файла. Чтобы увидеть список буферов, созданных в текущем сеансе Emacs, наберите C-x C-b. Мы видим, что каждый буфер имеет имя и может иметь связанное с ним имя файла, содержимое которого хранится в данном буфере. Просматривать и перемещаться по буферам можно также через пункт меню Buffers.

Любой текст, который вы видите в окне Emacs (в том числе сам список буферов), является частью какого-либо буфера. Чтобы убрать список буферов наберите C-x 1 (данная комбинация оставляет в текущем окне только выделенный буфер).

Перейти в буфер по имени можно с помощью комбинации C-x b. После ее выполнения имя буфера для перехода будет запрошено в мини-буфере.

Для того, чтобы отобразить в текущем окне два буфера нажмите C-x 2 (чтобы разделить окно горизонтально) или C-x 3 (чтобы разделить окно вертикально). Для перехода между буферами используйте комбинацию C-x o или мышь.

Удаленная работа с файлами

Emacs позволяет прозрачно для пользователя работать с файлами на других компьютерах. Например, чтобы открыть файл inf/task1/hello.c, расположенный в домашнем каталоге пользователя akolosov на сервере kappa.cs.karelia.ru можно ввести комбинацию клавиш C-x C-f и указать все параметры подключения в имени файла следующим образом: /akolosov@kappa.cs.karelia.ru:inf/task1/hello.c, после чего Emacs запросит в мини-буфере пароль для подключения к серверу и все дальнейшие изменения в файле будут выполняться уже удаленно на сервере. Более того, при редактировании файла на другом сервере, все связанные с ним команды будут также выполняться удаленно. Например сборка (M-x compile) или отладка (M-x gdb) программы hello.c из предыдущего примера будут выполнены на сервере kappa.cs.karelia.ru.

Emacs поддерживает большое количество протоколов для удаленной работы с файлами: SSH, Telnet, FTP, WebDAV, OBEX и др.

Редактирование текста

Как и в большинстве других редакторов для того, чтобы начать вводить текст необходимо просто нажимать соответствующие символы на клавиатуре. Для перемещения курсора можно использовать стрелки, указатель мыши, а также комбинации клавиш, позволяющие осуществлять более сложные перемещения (подробнее см. руководство по Emacs).

Комбинации клавиш для выполнения операций выделения текста, копирования, вставки, отмены и т.д. могут показаться пользователям редакторов с менее богатой историей слегка необычными:

  • C-/, C-_ или C-x C-u — отменить предыдущую команду редактирования.
  • C-<Пробел> — начать выделение текста.
  • M-w — поместить выделенный текст в буфер обмена.
  • C-w — вырезать выделенный текст и поместить его в буфер обмена.
  • C-k — вырезать весь текст от курсора до конца строки и поместить его в буфер обмена.
  • C-y — вставить текст из буфера обмена, который был помещен туда последним.
  • M-y — если нажата сразу после C-y, то заменит только что вставленный текст на тот, который был помещен в буфер обмена предпоследним. Таким образом, можно поместить в буфер обмена сразу несколько элементов и затем последовательно вставить их в разных местах документа.
  • C-s — поиск по файлу. Строка для поиска вводится в мини-буфер, поиск осуществляется по мере набора текста.
  • M-% — замена текста в текущем буфере.

Emacs также может имитировать более простой режим редактирования документов, в котором используются комбинации: C-c для копирования, C-v для вставки, C-z для отмены и Shift для выделения текста. Для включения этой возможности выберите пункт меню Options → Use CUA Keys.

Другие возможности Emacs

  • dired-mode — файловый менеджер Emacs. Откройте любой каталог с помощью привычной комбинации клавиш C-x C-f, содержимое каталога автоматически откроется в режиме dired. В данном режиме вы можете навести курсор на любой файл и переименовать его (нажать R), скопировать его (нажать C) или удалить (нажать D). Нажав C-x C-q вы можете редактировать имена файлов просто редактируя их в текущем буфере (изменения примут силу после сохранения, C-x C-s). Подробнее см. описание Dired в руководстве по Emacs.
  • M-x gnus — Почтовый клиент. В вычислительной системе кафедры ИМО он по умолчанию настроен на работу с почтовым сервером mail.cs.petrsu.ru.
  • M-x compile — простой способ вызова команды make из текущего каталога.
  • M-x gdb — интерфейс к отладчику GDB. Для перехода в расширенный интерфейс отладчика выберите пункт меню Gud → GDB-MI → Display Other Windows.
  • org-mode — простой формат разметки, позволяющий превратить Emacs в ежедневник для ведения заметок, списка важных дел, расписания и т.д. Для того, чтобы начать использовать org-mode просто начните редактировать в Emacs любой файл с расширением .org. Кстати, это руководство также сделано в org-mode (emacs-short-tutorial.org). Еще один развернутый пример использования org-mode подготовлен М. А. Крышенем — org-example.org.
  • M-x term — эмулятор терминала.
  • M-x butterfly — см. рисунок 1.
  • Делу время, потехе час:
    • M-x tetris — тетрис,
    • M-x snake — змейка,
    • M-x doctor — психотерапевт,
    • многое другое.
  • раздел будет пополнятся.

Дополнительные источники информации


Лицензия Creative Commons
«Краткое руководство по Emacs» созданное автором по имени Александр Колосов, публикуется на условиях лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.

Автор: Александр Колосов <akolosov@cs.petrsu.ru>

Последние изменения: 2015-07-23 Чт 17:28