Кафедра ИМО ПетрГУ | М. А. Крышень

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

Содержание

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

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

378_v1.png

Рис. 1.: Настоящие программисты (xkcd.ru, оригинал на английском)

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

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

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

Прямая ссылка на установщик Emacs версии 27.2 для Windows (64 бита): emacs-27.2-x86_64-installer.exe. Для удаленной работы с файлами (см. ниже) также потребуется установить PuTTY (скачать, используйте установочный файл msi).

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

Для управления 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, чтобы остановить выполнение команд, которые слишком долго выполняются.

Комбинациям клавиш соответствуют команды (функции Elisp). Для поиска и непосредственного ввода команд можно использовать комбинацию M-x.

Для выхода из редактора используйте комбинацию C-x C-c.

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

Для того, чтобы открыть файл нажмите 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, расположенный в домашнем каталоге пользователя kryshen на сервере kappa.cs.karelia.ru можно ввести комбинацию клавиш C-x C-f и указать все параметры подключения в имени файла следующим образом: /ssh:kryshen@kappa.cs.karelia.ru:inf/task1/hello.c (при работе из Windows с PuTTY вместо ssh: используйте префикс plink:), после чего Emacs запросит в мини-буфере пароль для подключения к серверу и все дальнейшие изменения в файле будут выполняться уже удаленно на сервере.

При редактировании файла на другом сервере, все связанные с ним команды будут также выполняться удаленно. Например сборка (M-x compile) или отладка (M-x gud-gdb) программы hello.c из предыдущего примера будут выполнены на сервере kappa.cs.karelia.ru.

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

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

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

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

  • C-/, C-_ или C-x 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

  • Чтение системной докумнтации: M-x man и M-x info.
  • M-x shell: командная оболочка Shell (при удаленной работе может потребоваться явно ввести путь к интерпретатору /bin/bash).
  • 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. При работе с удаленными файлами рекомендуется использовать M-x gud-gdb — более легкий вариант отладчика без поддержки расширенного интерфейса.
  • org-mode — простой формат разметки, позволяющий превратить Emacs в ежедневник для ведения заметок, списка важных дел, расписания и т. д. Для того, чтобы начать использовать org-mode просто начните редактировать в Emacs любой файл с расширением .org. Кстати, это руководство также сделано в org-mode (emacs-short-tutorial.org). См. также более развернутый пример (org-example.org), демонстрирующий некоторые дополнительные возможности org-mode.
  • M-x term — эмулятор терминала.
  • M-x butterfly — см. рисунок 1.
  • Делу время, потехе час:
    • M-x tetris — тетрис,
    • M-x snake — змейка,
    • M-x doctor — психотерапевт,
    • многое другое.
  • раздел будет пополнятся.

Дистрибутивы

Существуют дистрибутивы Емакса, предоставляющие готовую конфигурацию и наборы дополнительных пакетов:

  • Prelude достаточно близок к конфигурации Емакса в вычислительной системе ИМИТ, рекомендуется для самостоятельной установки;
  • Spacemacs,
  • Doom Emacs.

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

Авторы: Александр Колосов <alexander@kolosov.xyz>, Михаил Крышень <kryshen@cs.petrsu.ru>

Creative Commons License Эта работа публикуется на условиях лицензии Creative Commons Attribution 4.0 International.

Последние изменения: 2021-09-21 Вт 13:37