Мини-шпаргалка по Emacs

(Содержит самый минимум сведений на тот случай, если дедушка Столлман пустит вас за личный ноутбук.)


Emacs ("Имэкс" или "емАкс") - редактор на основе интерпретатора для языка программирования Lisp, поэтому содержит много функций. Его (Emacs) долго переделывали, совмещая интерпретатор и редактор предыдущего поколения, поэтому сам Emacs может показаться чрезмерно усложнённым.


Есть версии (разновидности) Emacs для командной строки (emacs-nox) и для графического интерфейса. Обычное имя команды - emacs (или другая версия - xemacs); принудительный запуск именно версии для командной строки - опция -nw.


Пример того, как может выглядеть Emacs при запуске в командной строке: это буфер под названием "GNU Emacs"; по сути - гипертекст формата info.


File Edit Options Buffers Tools Help

Welcome to GNU Emacs, one component of the GNU/Linux operating system.


Get help C-h (Hold down CTRL and press h)

Emacs manual C-h r Browse manuals C-h i

Emacs tutorial C-h t Undo changes C-x u

Buy manuals C-h RET Exit Emacs C-x C-c

Activate menubar M-`

(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.

If you have no Meta key, you may instead type ESC followed by the character.)

Useful tasks:

Visit New File Open Home Directory

Customize Startup Open *scratch* buffer


GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)

of 2016-04-17 on lgw01-04, modified by Debian

Copyright (C) 2015 Free Software Foundation, Inc.


GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details.

Emacs is Free Software--Free as in Freedom--so you can redistribute copies

of Emacs and modify it; type C-h C-c to see the conditions.

Type C-h C-o for information on getting the latest version.


-UUU:%%--F1 *GNU Emacs* All L1 (Fundamental) ---------------------------

For information about GNU Emacs and the GNU system, type C-h C-a.


Здесь есть info-гиперссылки, их альтернативные сочетания клавиш и пояснения: как расшифровать сочетания. Заметьте: C-h t означает "Ctrl H и потом T (без Ctrl)"; C-x C-c (выход, то есть завершение Emacs и возврат в оболочку) означает "Ctrl X и потом Ctrl C". Без Shift. Клавишу Ctrl ещё обозначают символом ^ или кратко - C. RET означает Return, то есть клавишу Enter; ESC - Escape. После выхода экран может остаться не очищенным. При переключении на кириллицу сочетания могут не действовать.


Экран программы Emacs называют фреймом (или кадром, frame); фрейм здесь - это аналог окна в GUI. Верхняя строка фрейма (File Edit Options и прочее) - "строка меню", опять же как в окнах в GUI. Символ ` в подсказке (в буфере "GNU Emacs" выше) для активации строки меню - это обратная кавычка, на одной клавише с ~ и Ё. Клавишу Alt, которая ещё называется Meta, ещё обозначают просто M. Соответственно M-` означает сочетание Alt + `.


После активации строки меню фрейм будет поделён на два буфера: внизу добавятся заголовки меню (показано частично):


Possible completions are:

b==>Buffers e==>Edit f==>File

h==>Help o==>Options t==>Tools


Внизу, в строке минибуфера появится пункт "по умолчанию", то есть программа выбирает сама:


Menu bar (up/down to change, PgUp to menu): f==>File


Если нажать Enter, появятся пункты меню из группы File (показано частично):


q==>Quit C-x C-c r==>Recover Crashed Session

s==>Save As... C-x C-w v==>Visit New File... C-x C-f


Снова пункт "по умолчанию":


Menu bar (up/down to change, PgUp to menu): v==>Visit New File... C-x C-f


Если нажать Enter, то нужно будет ввести имя нового файла. Сейчас, для освоения, следует стрелками Вверх и/или Вниз (up/down в подсказке) либо нажатием клавиши-буквы, указанной перед стрелкой (==>) выбрать пункт выхода:


q==>Quit C-x C-c


И нажать Enter для активации.


Внимательно прочитайте подсказку к меню в нижнем буфере. Там, например, есть: "Type C-g or ESC ESC ESC to cancel". То есть "набрать C-g или ESC ESC ESC, чтобы прервать [выполнение какой-то внутренней команды Emacs, в том числе работу с меню]".


Нижняя строка ("окно минибуфера") - нечто вроде собственной командной строки Emacs. Выше - "строка режима" (или "строка состояния") с именем текущего (показанного сейчас) буфера, номером линии с курсором и другой информацией.


Открыть файл (создать буфер, имя - в строке минибуфера), в том числе ещё не существующий, - C-x C-f. "Вставить" (добавить) содержимое другого файла в текущий буфер (в "точку вставки", то есть в позицию курсора) - C-x i. Сохранить файл (записать текущий буфер) под тем же именем - C-x C-s. Сохранить под другим именем (и продолжить правку уже переименованного файла, оставив старый) - C-x C-w. Сочетания для закрытия файла нет, но можно через меню: M-` f c. Или нижеуказанной командой уничтожения буфера.


Переместить курсор на один шаг (символ, линию): соответствующая курсорная стрелка; или C-b, C-f, C-p, C-n. Поместить курсор в начало выражения - Home или C-a; в конец - End или C-e. M-B перемещает курсор на одно слово влево; M-F - вправо.


Отменить недавнюю правку - C-x u или C-/. Вернуть первоначальное содержимое файла, пока возможно (не выходя из Emacs), - M-x revert-buffer. Выражение revert-buffer надо набрать вместе с дефисом и завершить клавишей Enter. Это имя функции на языке Lisp в Emacs; здесь сочетание M-x - нечто вроде активации приглашения внутренней командной строки (для интерпретатора Lisp). Возможно автодополнение по Tab, как в Bash.


Искать фрагмент текста по шаблону - C-s (вперёд, к концу файла) и C-r (назад, к началу). Заменить фрагменты по шаблону (вперёд) - M-%. В минибуфере нужно будет ввести по порядку: шаблон поиска; шаблон замены; уточнение, как именно заменять (y - заменить, n - пропустить, ! - заменить все найденные шаблоны поиска). В уточнении можно набрать знак вопроса, и появится подсказка.


Начать выделение фрагмента текста с позиции курсора - C-SPC (то есть Ctrl Пробел) или C-@. Потом перемещайте курсор любым способом, наблюдайте подсветку выделения. Ещё раз C-SPC - выделение исчезнет и начнётся заново. Нажать C-SPC дважды - убрать выделение (текст останется на месте). Заметьте сообщения в строке минибуфера.


Вырезать выделенный фрагмент - C-w (в отдельный внутренний буфер). Скопировать выделенный фрагмент - M-w. Вставить готовый фрагмент - C-y. После выхода из почти любого редактора внутренний буфер с фрагментами исчезает.


Без выделения: сочетание C-u вырежет текст перед курсором до начала строки; C-k вырежет текст под и за курсором до конца строки; c-w - вырежет слово перед курсором; M-d - после курсора.


Выбрать файл-буфер (переключиться на его просмотр или редактирование) - C-x b. Показать список всех буферов - C-x C-b. Уничтожить буфер (закрыть файл) - C-x k. Имя буфера надо набрать или выбрать стрелками Вверх и/или Вниз, потом нажать Enter; или просто Enter для предлагаемого по умолчанию (default) варианта.


В Emacs возможно выполнять базовые действия с файлами и каталогами; это называется Dired. Список-содержимое выбранного каталога помещается в отдельный буфер.


Вызов функциональности Dired - C-x d или M-x dired. В минибуфере появится приглашение ввести имя каталога. Строка меню пополнится.


Перед действиями с файлами или каталогами понадобится сначала навести курсор; Emacs старается установить курсор в начало имени.


Открыть буфер для правки файла - f или Enter (то же, что C-x C-f в обычном режиме); если это каталог (в том числе ссылки в виде одной или двух точек), то будет показано его содержимое в режиме Dired (подобно последовательности команд cd и ls в командной оболочке). Открыть буфер для файла в режиме просмотра - v.


Создать каталог - +.


Для действий с несколькими файлами за раз, их, после наведения курсора, метят - * m. В начале строки появится метка-звёздочка. Снять метку - * u. Пометить несколько файлов подряд, начиная с курсорной строки, возможно, заранее набрав число (например, 5) - 5 * m. Число возможно задать и для снятия метки.


Снять все метки - * !. Пометить все каталоги (кроме . и ..) - * /. Обратить список меток (то есть помеченные файлы потеряют метки, непомеченные - получат) - * t.


Переименовать файл (или переместить помеченные файлы и/или каталоги) со вводом нового имени (или каталога назначения) в минибуфере - R.


Аналогично предыдущей операции, но выполнить копирование - C.


Удалить помеченные файлы - D. Или действовать как указано ниже.


Пометить файл именно для удаления (не такие метки, как вышеуказанные) - d; снять отметку - u; удалить помеченные для удаления файлы - x (потребуется подтвердить или отказаться в минибуфере).


Перечитать содержимое буфера Dired (если есть основания думать, будто файлы и/или каталоги неконтролируемо изменены) - g.


Учебник (Emacs tutorial C-h t) переведён на русский язык. Большая часть документации (Emacs manual C-h r) - на английском языке, info-гипертекст. Читать Emacs manual отдельно: info emacs. В Интернете есть всё ещё актуальный перевод на русский язык руководства Emacs: версия редактора "20.7", 1999 год; переводчики Иванова, Отт, Тихонов.

GNU/Linux

1K поста15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.