GNU Emacs — один из старейших текстовых редакторов. Он был создан Ричардом Столлманом, основателем движения за свободное программное обеспечение и проекта GNU. Он также является создателем компилятора и отладчика GNU C.
Emacs — это универсальный и очень настраиваемый текстовый редактор с сотнями привязок клавиш и команд. Благодаря многочисленным настройкам он, пожалуй, является одним из текстовых редакторов с трудной кривой обучения, поэтому большинство разработчиков, системных администраторов и обычных пользователей Linux предпочитают редакторы Nano или Vim.
Несмотря на сложность освоения Emacs, он не совсем враждебен к новичкам, и при правильной стратегии обучения и руководстве вы быстро освоитесь.
Как установить Emacs в Linux
Прежде чем мы начнем использовать Emacs. Давайте сначала посмотрим, как установить его в различных дистрибутивах Linux.
Для систем на базе Debian вы можете легко установить Emacs из стандартных репозиториев с помощью менеджера пакетов apt.
$ sudo apt update
$ sudo apt install emacs -y
Для систем на базе RedHat, таких как Rocky Linux, Alma Linux и Fedora, используйте менеджер пакетов dnf для установки Emacs из репозиториев по умолчанию.
$ sudo dnf update
$ sudo dnf install emacs -y
Чтобы установить Emacs в других дистрибутивах Linux, используйте следующую соответствующую команду.
sudo emerge -a sys-apps/emacs [On Gentoo Linux]
sudo apk add emacs [On Alpine Linux]
sudo pacman -S emacs [On Arch Linux]
sudo zypper install emacs [On OpenSUSE]
sudo pkg install emacs [On FreeBSD]
Не говоря уже об этом, давайте приступим к работе с редактором Emacs.
Начало работы с редактором Emacs
Редактор Emacs имеет как графический интерфейс, так и CLI-версию. Однако при вызове из терминала современная версия Emacs представляет собой графический редактор с меню, кнопками, окнами и даже отдельным редактором.
Чтобы запустить редактор Emacs, просто выполните команду:
$ emacs
Появится окно графического интерфейса Emacs, как показано ниже. Под логотипом Emacs находятся полезные ссылки, перейдя по которым вы сможете получить дополнительную информацию об использовании Emacs.
Сверху находится строка меню, состоящая из стандартных пунктов меню, таких как «Файл», «Правка» и «Параметры». Под ней находится панель инструментов с пунктами меню для создания нового файла, чтения существующего файла из буфера, копирования, вставки и вырезания текста.
На значки панели инструментов можно навести курсор мыши, чтобы увидеть, какую задачу или операцию они выполняют при нажатии.
Теперь давайте рассмотрим остальные разделы графического интерфейса.
Давайте кратко обсудим каждый раздел:
- Фрейм — В обычных приложениях с графическим интерфейсом это называется окном. В Emacs, однако, окно называется фреймом. По умолчанию в Emacs используется окно «Добро пожаловать», в котором мы видим логотип Emacs и обзор полезных ссылок и других разделов.
- Буфер — Буфер — это полотно или область, в которой хранится текст, который вы набираете или редактируете. Он просто хранит текст, содержащийся в файле. Вы можете иметь несколько буферов внутри t. Дополнительные буферы можно создавать и «убивать» по своему усмотрению.
- Мигающий курсор — также известный как «точка», мигающий черный курсор действует как курсор, в который можно вставить текст.
- Строка состояния — отображает информацию об активном буфере и мигающей точке. В каждом баре есть одна строка состояния.
- Мини-буфер — это белое пространство под строкой состояния. В нем иногда отображаются сообщения о состоянии (например, если нужно сохранить файл с новыми изменениями). Кроме того, это раздел, где вы вводите и выполняете команды Emacs.
Открытие нового файла в Emacs
Чтобы открыть новый файл в Emacs в командной строке, введите `emacs`, затем имя файла и нажмите ENTER. Например, чтобы открыть файл с именем file1.txt, выполните команду
emacs file1.txt
Откроется новое окно с буфером, содержащим содержимое файла.
Отсюда вы можете продолжить редактирование или работу над файлом.
Клавиатурные сокращения Emacs
В Emacs большинство задач выполняется с помощью сочетаний клавиш. Поэтому, чтобы легче было работать, нужно хорошо знать часто используемые сочетания клавиш.
В Emacs клавиши «Ctrl» и «ESC» являются ключевыми для сочетаний клавиш.
Клавиша «ESC» (иногда клавиша «ALT») — это клавиша, которую обычно называют «Meta», а сокращенно — просто «M». Например, M-q означает нажатие клавиш «Meta» и «q» на клавиатуре.
Клавиша «Ctrl» сокращенно называется просто «C». Например, C-g означает нажатие клавиш «Ctrl» и «g» на клавиатуре.
Некоторые сочетания клавиш нужно повторять дважды. Например, «C-h C-h» означает нажатие комбинации клавиш «Ctrl» и «h» дважды.
Теперь давайте рассмотрим некоторые часто используемые сочетания клавиш.
- C-h C-h — открывает справочное руководство.
- C-g — Выход из окна Emacs.
- C-x клавиша со стрелкой вправо — Переход по буферам вправо.
- C-x стрелка влево — Переход по буферам влево.
- C-x C-f — Открыть существующий файл в Emacs. Вам будет предложено указать путь к файлу в мини-буфере.
- C-x C-s — Сохранить изменения, внесенные в файл.
- C-x s — Команда сохраняет все файлы.
Открытие/сохранение и закрытие буфера в Emacs
Чтобы открыть существующий файл и загрузить его содержимое в буфер Emacs, воспользуйтесь комбинацией клавиш C-x C-f.
Это действие откроет в мини-буфере приглашение, которое попросит вас ввести имя файла. Укажите путь к файлу и нажмите ENTER.
Вот пример файла с именем «file1.txt», открытый в Emacs.
Закончив работу над файлом, сохраните изменения с помощью комбинации клавиш C-x C-s.
Чтобы сохранить файл под другим именем, воспользуйтесь сочетанием клавиш C-x C-w. Это эквивалент функции «Сохранить как». Операция предложит вам указать имя файла.
В этом примере мы сохранили файл под именем ‘jamie.txt’.
Чтобы закрыть буфер, воспользуйтесь сочетанием клавиш C-x k. При этом вам будет предложено указать буфер, который нужно закрыть. После ввода нажмите ENTER, чтобы выйти.
Если вы внесли изменения до выхода из буфера, вам будет предложено сохранить их. Чтобы сохранить изменения, введите ‘yes’ в мини-буфер и нажмите ENTER. В противном случае введите ‘NO’.
Как вырезать / скопировать / вставить текст в Emacs
Как и в редакторах командной строки, таких как Nano или Vim, в Emacs есть свои варианты операций «вырезать», «копировать» и «вставить». Эти операции называются по-разному.
Операция kill аналогична «вырезать», а «выдернуть» — «вставить». Но прежде чем приступать к операциям копирования/вырезания/вставки, необходимо сначала выделить область текста. Этот участок текста называется `областью`.
Чтобы выделить область или участок текста, который нужно скопировать или вырезать, поместите указатель в начало нужной области. Затем нажмите на клавиатуре комбинацию клавиш «C-spacebar». В мини-буфере появится надпись «Mark set».
Затем с помощью клавиши со стрелкой выделите текст. В данном случае я использую клавишу со стрелкой вперед, чтобы выделить первую строку. Выделенный текст будет подсвечен, как показано ниже.
Чтобы скопировать текст, используйте сочетание клавиш M-w (ESC + W), а чтобы вырезать или «убить» область, нажмите C-w.
Затем переместитесь в область, которую нужно «выдернуть» или вставить текст, и нажмите C-y, чтобы вставить его.
Чтобы отменить изменения, используйте комбинацию C-x u.
Как искать текст в Emacs
Для поиска строки или слова используйте сочетание клавиш «C-s» для прямого поиска. Для поиска в обратном направлении используйте сочетание клавиш «C-r». Затем введите поисковое слово или запрос и продолжайте нажимать ‘C-s’ или ‘C-r’.
В приведенном ниже примере поисковым запросом является слово «emacs».
Поисковый запрос будет выделен, как показано ниже.
Когда вы дойдете до конца результатов поиска, в мини-буфере появится сообщение «Неудачный I-поиск».
В случае поиска в обратном направлении вы увидите уведомление «I-search backward» в мини-буфере.
Если вы дойдете до конца шаблона поиска, курсор переместится в начало файла и перейдет к началу результатов поиска. В мини-буфере появится уведомление «Overwrapped I-search».
Как найти и заменить текст в Emacs
Иногда вы можете захотеть заменить определенное слово (слова) в текстовом файле. В Emacs для этого используйте комбинацию ALT + SHIFT + 5. Введите элемент поиска в мини-буфер.
Например, здесь в качестве поискового запроса используется ‘Emacs’. Затем нажмите ENTER.
Затем укажите строку или слово, на которое вы хотите ее заменить. В данном случае «Nano» — это слово, которым нужно заменить «Emacs». Затем нажмите ENTER.
Отобразится первый экземпляр шаблона поиска.
Здесь вы можете выполнить следующие действия:
- введите пробел или «y», чтобы заменить одно совпадение. Нажмите ‘Delete’ или ‘n’, чтобы перейти к следующему запросу.
- введите ‘!’, чтобы заменить все оставшиеся совпадения в буфере.
Обертывание текста в Emacs
По умолчанию Emacs не оборачивает текст автоматически. Это может вызвать затруднения при чтении больших документов, поскольку Emacs воспринимает абзац как одну строку.
Чтобы решить эту проблему, просто запустите M-q для обертывания текста в читаемые абзацы, как показано ниже.
Часто используемые сочетания клавиш Emacsa
Здесь приведены часто используемые сочетания клавиш:
Окна
- C-x 0: Закрыть или выйти из активного окна.
- C-x 1: Закрыть или выйти из всех окон, кроме активного.
- C-x 2: Разделить активное окно по горизонтали.
- C-x 3: Разделить активное окно по вертикали.
- C-x o: Смена активного окна на следующее окно.
Буферы
- C-h C-h: Открыть меню помощи.
- C-x b: переключение буферов.
- C-x вправо: Циклическое перемещение в правый буфер.
- C-x влево: Циклическое перемещение в левый буфер.
- C-x k: Убить буфер.
- C-x C-c: Выход из Emacs.
Навигация
- C-up: Перемещение на один абзац вверх.
- C-down (вниз): Перемещение на один абзац вниз.
- C-вправо: Перемещает курсор на одно слово вправо.
- C-влево: Перемещает курсор на одно слово влево.
- домой: Перемещает указатель в начало строки.
- end: Перемещает указатель в конец строки.
Поиск текста
- C-s: Выполнить поиск вперед.
- C-r: Выполнить обратный поиск.
- M-%: замена запроса («пробел» — заменить, «n» — пропустить, ‘!» — заменить все).
- M-q: выполнить обертывание текста.
Открытие/сохранение файлов
- C-x C-f: Открыть файл.
- C-x C-s: Сохранить файл.
- C-x C-w: Это эквивалентно функции «Сохранить файл как».
- C-_: Отменить операцию.
Копировать и вставить
- C-w: Вырезать текст в области.
- M-w: Копирование текста в регионе.
- C-y: Вставить вырезанный или скопированный текст.
Заключение
Emacs — это легкий и очень настраиваемый текстовый редактор, который предлагает множество возможностей по настройке. Однако из-за его длительного обучения разработчики, системные администраторы и операционные команды сегодня предпочитают редакторы Nano или Vim, которые гораздо проще в освоении и использовании.