Краткое руководство по Emacs
Содержание
Emacs — интегрированная среда для выполнения большого количества типов задач. Это значит, что все инструменты редактирования, поиска, обработки текста, работы с файлами, доступны вам в любой момент независимо от того что вы делаете: пишете код или текст диссертации, читаете документацию, выполняете системные задачи, составляете своё расписание или пишете электронное письмо.
Постоянно используя Emacs, со временем вы понимаете, что в нем можно решать практически любые задачи. Зачастую проще и быстрее сделать что-то в Emacs чем изучать отдельную программу со своими возможностями по редактированию текста и комбинациями клавиш.
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
— психотерапевт,- многое другое.
- раздел будет пополнятся.
Дополнительные источники информации
- Встроенное в Emacs руководство по Emacs (для вызова нажмите
C-h t
) - Emacs для начинающих
- A Guided Tour of Emacs
- Шпаргалка по командам Emacs (версия на английском)
- A Visual Guide to Emacs
«Краткое руководство по Emacs» созданное автором по имени Александр Колосов, публикуется на условиях лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.