• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Статья также доступна на украинском (перейти к просмотру).

Как использовать редактор Emacs в Linux

Содержание

Расширяемый текстовый редактор Emacs в известной степени является заменой существующим средствам работы с текстом в Linux-системах. Он вобрал в себя мощные возможности известного редактора Vi, в то же время придав гибкость благодаря наличию многих режимов работы с текстом как основных, так и вспомогательных. В любом случае, его использование расширит и разнообразит подходы к обработке текстовых данных. Рассмотрим подробнее его возможности и использование на сервере Ubuntu 22.04.

Общие характеристики редактора Emacs

Средство кроссплатформенное и распространяется по общедоступной лицензии GNU GPL, что способствует росту его популярности среди пользователей. Редактор с самого начала своего создания был ориентирован на работу только в текстовых терминалах и поэтому имеет терминологию, ориентированную именно на этот режим. Особенно это проявляется в строении пользовательского интерфейса. На Рисунке 1 изображена схема интерфейса программы с названиями составляющих объектов. Рассмотрим назначение каждого из объектов.

Схема интерфейста Emacs

Рисунок 1. Схема пользовательского интерфейса редактору Emacs.

Основными объектами пользовательского интерфейса являются:

  • Фрейм;
  • Буфер;
  • Окно;
  • Область вывода системных сообщений;
  • Минибуфер.

Фрейм соответствует обычному окну графической системы Windows. В нем есть область вывода данных и несколько рабочих окон редактору Emacs.

Буфер представляет собой объект, содержащий набор любых данных, с которыми работает пользователь. Обычно его содержимое соответствует содержимому открытому на данный момент файла. Любое взаимодействие редактора с пользователем может происходить только через буфер. Это, так сказать, временное хранилище данных. При сохранении файла содержимое буфера записывается на диск и очищается буфер.

Окно – область фрейма, которая может отображать содержимое только одного буфера. В отличие от любого графического интерфейса образование окон в текстовом редакторе возможно только путем разбиения фрейма на отдельные независимые участки с данными различных буферов. Именно эти участки и представляют собой окна. Под каждым окном присутствует строка состояния (mode line) для вывода информации о текущем буфере – режиме работы, названии и т.д.

Область вывода системных сообщений или echo area приложение использует для вывода сообщений для пользователя, в частности для подтверждения выполнения определенных действий.

Минибуфер отображает дополнительную пользовательскую информацию и текущее состояние выполнения команд. Например, при выборе с помощью курсора той или иной команды главного меню в области минибуфера будет отображаться ее название.

Возможности редактора реализуются с помощью двух режимов работы, а также набора базовых функций, касающихся непосредственной обработки текста независимо от вида текущего режима работы.

Первый режим – основной, второй – вспомогательный. Основной режим делится на различные виды или подрежимы, которые обычно устанавливаются автоматически в зависимости от типа открываемого файла. Приведем эти подрежимы:

  • Text (текстовый);
  • Shell-script (командный);
  • Java (режим розработки);
  • Perl;
  • Python;
  • C;
  • Html (обработка гипертекста).

Основной режим позволяет использовать редактор не только для обработки обычных текстов, но и для создания программ и сценариев, то есть, как интегрированная среда разработки (IDE). Здесь, в частности, осуществляется подсветка синтаксиса речевых конструкций, доступное форматирование и другие специальные возможности и функции. Следует отметить, что текущим может быть только один основной режим.

Для изменения видов основного режима следует сначала сохранить содержимое текущего буфера (Ctrl+X, Ctrl+S), затем нажать клавиши Alt+X.

Вспомогательный режим может быть как привязан к какому-либо из основных, так и включен отдельно. В отличие от основного одновременно может быть включено несколько вспомогательных режимов в зависимости от потребностей. Примеры вспомогательных режимов: автосохранение файлов, настройка выравнивания текста и многие другие.

Развертывание Emacs на Ubuntu 22.04

Подготовительные действия

Для работы с редактором нам понадобится сервер Ubuntu, пользователь с правами sudo и брандмауэр.

Для начала создадим пользователя с именем testing_emacs, для чего введем в терминале:

$ adduser testing_emacs

Создание нового пользователя

После ввода всех учетных данных и их подтверждения мы получили нового пользователя системы. Добавим его в группу пользователей с правами sudo:

$ usermod -aG sudo testing_emacs

Добавление пользователя в группу sudo

Изменим текущий аккаунт:

$ su -l testing_emacs

Переключение между аккаунтами

Приглашение командной строчки: testing_emacs@dedicated:~$. То есть, можем работать дальше.

Обновим индекс пакетов:

$ sudo apt update

Обновление пакетов

Проверим наличие редактора на сервере:

$ emacs

Проверка наличия редактора

Можно убедиться, что редактор Emacs отсутствует в нашей системе и перейдем к процессу инсталляции.

Установка Emacs

Установим программу с помощью следующей команды:

$ sudo apt install emacs

Установка Emacs

Подтверждаем выделение дополнительного дискового пространства и процесс продолжается.

Процесс установки Emacs

Конечное окно процесса инсталляции программы выглядит следующим образом:

Завершение процесса установки Emacs

Результат: Setting up emacs (1:27.1+1-3ubuntu5.1), то есть Emacs версии 1.27.1 успешно установлен в нашей системе. Перейдем к рассмотрению работы с ним.

Работа с редактором Emacs

Разобьем процесс рассмотрения программы на несколько этапов. Это поможет сконцентрироваться на главных аспектах использования каждого из компонентов или функций. Прежде всего, это следующие этапы:

  • Изучение интерфейса и справочной системы;
  • Работа с управляющими клавишами;
  • Редактирование;
  • Смена режимов работы.

Интерфейс программы

Структура пользовательского интерфейса программы уже была рассмотрена ранее. Теперь остается ознакомиться с ним на практике.

Запустим редактор:

$ emacs

Запуск Emacs

Если приложение запускается без имени файла, как в нашем случае, то на месте окна главного буфера появляется приветственное сообщение, информация о версии программы, ссылка на справочную информацию, а также рабочие ссылки для создания нового файла (Visit New File), перехода к домашней директории (Open Home Directory), scratch буфера, а также ряд других ссылок (см. скрин).

Для создания нового файла воспользуемся ссылкой Visit New File. Для этого с помощью клавиши tab переместим курсор на Visit New File и нажмем Enter. В результате в нижней части окна (минибуфер) появится приглашение с предложением ввести имя файла (см.скрин ниже).

Создание нового файла

Введем имя testingemacs.txt и нажмем Enter. В результате откроется «классическое» окно редактору, в котором будут четко разделены следующие блоки (сверху вниз): главное меню, буфер (центральная часть окна), строка состояния (светлым цветом), минибуфер (с приглашением New File).

В строке состояния мы видим следующую информацию:

  • Имя файла, который мы только что создали (testingemacs.txt);
  • Положение курсора;
  • Установленный режим редактирования (Text);
  • Статус файла (если изменения не вносились, это символы «--------»).

Строка состояния

Перейдем в главное меню с помощью клавиши F10. Следует отметить, что мышь здесь не поможет, только клавиатура.

Приведем список основных групп команд, доступных в главном меню программы:

  • Поиск файлов;
  • Работа с файлами (слияния, сравнения и т.п.);
  • Работа с электронной почтой;
  • Проверка орфографии;
  • Работа с командной строкой;
  • Операции шифрования и дешифрования;
  • Калькулятор;
  • И некоторые другие.

Emacs предоставляет широкие возможности для работы со справочной информацией. В нее можно перейти как с помощью клавиш, так и команд главного меню. Например, для быстрого вызова помощи следует сначала нажать клавиши Ctrl+H, затем одну из комбинаций в зависимости от типа вопроса – Ctrl+P, Ctrl+E и другие.

Теперь воспользуемся главным меню и выберем команду запуска документации по Emacs с возможностью выбора языка ее текста – Emacs Tutorial (choose language) (см. скрин).

Вибор Emacs Tutorial из меню

В результате в нижней части кадра образуется еще одно окно для выбора языка документации, как показано ниже. Для выбора нужного языка его название можно вручную ввести в минибуфер или воспользоваться клавишами перемещения курсора для ускорения процесса, после чего нажать Enter.

Вибор язика

В результате нам становится доступна документация по программе на выбранном языке (см. скрин).

Документация на выбранном языке

Изменение экранов можно производить путем перемещения курсора или с помощью комбинации клавиш Ctrl+v.

Работа с управляющими клавишами

Редактор поддерживает несколько основных клавиш для управления своей работой. Основные из них – Ctrl, Alt, Esc и Meta (в случае ее присутствия). На компьютерах Mac Apple вместо Alt используют OPTION, на других – EDIT. Клавиши Alt и Esc заменяют собой Meta и потому получили название метаключа. Они всегда используются в сочетании с Ctrl. принято помечать буквой М. Для выхода из текущего состояния поможет многократное нажатие Esc.

Возвратимся к созданному нами файлу и попытаемся сохранить его на диске. Для этого можно использовать комбинации Ctrl+X, Ctrl+S или Ctrl+X, Ctrl+C. В последнем случае мы увидим в минибуфере запрос на подтверждение сохранения файла на диске, как показано ниже:

Запрос на сохранение файла

Save file /home/testing_emacs/testingemacs.txt? (y, n, !, ., q, C-r, C-f, d or C-h)

Нажмем клавишу Y и таким образом выйдем из редактора с сохранением файла.

Запустим наш файл из терминала с помощью следующей команды:

$ emacs testingemacs.txt

Введем в главный буфер вспомогательный текст, как показано ниже.

Запуск сохраненного файла

Теперь попробуем отработать на нем некоторые команды навигации. К примеру, переместим курсор на следующую строчку (Ctrl+N).

Перемещение между строками

Можно убедиться, что команда «сработала».

Теперь повернем курсор назад (Ctrl+P).

Перемещение между строками

Курсор успешно вернулся на свое прежнее место.

Переместим его в конец текста (Alt+E).

Перемещение курсора в конец текста

Теперь в начало (Alt+A).

Перемещение курсора на начало текста

Если бы наш текст состоял из нескольких страниц, то для перемещения между ними можно было бы применить следующие комбинации: Meta+V (вверх) и Ctrl+V (вниз).

Информацию по всем другим командам навигации всегда можно просмотреть в справочной системе программы.

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

Emacs позволяет выполнять более сложные операции с текстом, которые максимально максимально приближаются к текстовым процессорам. Наиболее значимые из них:

  • Маркировка текстовых областей;
  • Работа с внутренним буфером;
  • Удаление текста;
  • Отмена последней проделанной операции;
  • Поиск и замена текста;
  • Выполнение операции выравнивания текста;
  • Преобразование регистра символов;
  • Работа с окнами;
  • Смена режимов работы редактора.

Рассмотрим кратко каждую из указанных функций.

Маркировка текстовых областей. Алгоритм действий будет следующим:

  1. Курсор помещается в позицию, из которой нужно выделить область;
  2. Отмечаем указанную позицию (Ctrl+@);
  3. Курсор помещается в конечную позицию области.

Результат выполнения указанных действий показан ниже, то есть нужная область будет выделена.

Виделение теста в файле

Вы можете динамически изменять размер выделенной области, удерживая клавишу Shift и перемещая курсор в нужную позицию с помощью клавиш перемещения курсора.

Для снятия выделения следует дважды нажать комбинацию Ctrl+@.

Работа с буфером. Приведем основные операции с буфером:

  • Копирование (Meta+W);
  • Вставка (Ctrl+Y);
  • Вырезание (Ctrl+W).

Удаление текста. Приведем несколько вариантов:

  • Традиционное использование клавиш Del и Backspace;
  • Удаление слов в начальной позиции которых находится курсор (Meta+D);
  • Удаление строчек, начиная с позиции нахождения курсора и до конца строчки (Ctrl+K);
  • Удаление предложений (Meta+K).

Отмена последней проделанной операции. Для отмены нажмите Ctrl+X, а затем клавишу U.

Поиск и замена текста. Варианты выполнения поиска:

  • Поиск вперед (Ctrl+S);
  • Поиск назад (Ctrl+R).

После нажатия одной из указанных комбинаций клавиш в области минибуфера будет предложено ввести слово поиска, как показано ниже. Введем слово «хостинг».

Ввод слова для поиска

По результатам поиска будут выделены в тексте все вхождения искомого слова (см. скрин).

Результат поиска

Алгоритм замещения слов в тексте:

  1. Нажмите комбинацию Meta+%;
  2. В область минибуфера ввести слово, которое нужно заместить, после чего нажать Enter;
  3. В область минибуфера ввести слово или фразу, которым нужно заменить указанное слово, после чего нажать Enter.

В результате выполнения команды в тексте будут выделены все вхождения замещаемого слова. Управлять замещением можно путем ввода в область минибуфера соответствующих управляющих символов: «y» – заменить; «n» – перейти к следующему; «q» – выход из режима замещения.

Выполнение операции выравнивания текста. В редакторе доступно выравнивание текста по левому краю, по правому краю и по центру.

Для выравнивания строчки необходимо поместить курсор на ее начало и нажать комбинацию Meta+O, а потом Meta+S.

Для выравнивания текстовой области алгоритм действий будет следующим:

  1. Выделить область;
  2. Нажать Meta+X;
  3. В область минибуфера ввести «set-justification-» и нажать Tab;
  4. Из предложенных предложений выравнивания выберите нужное значение, например, «set-justification-left» и нажать Enter.

Преобразование регистра символов. Указанная операция может быть выполнена с помощью разных комбинаций клавиш в зависимости от конкретной задачи. Приведем несколько распространенных вариантов:

  • Преобразование слова в нижний регистр символов (Meta+C);
  • Преобразование слова в верхний регистр (Meta+U);
  • Преобразование абзаца в верхний регистр (Выделить, после чего последовательно нажать комбинации Ctrl+X, Ctrl+U).

Работа с окнами. Как уже отмечалось, содержимое каждого буфера отображается в отдельном окне. Программа предоставляет возможность переключения между окнами буферов по аналогии с окнами графического интерфейса. Имя буфера обычно совпадает с именем файла и отображается в строке состояния в нижней части окна.

Чтобы переключиться на другой буфер нужно нажать комбинацию Ctrl+X, а затем клавишу B. При этом имя буфера необходимо ввести в область минибуфера и нажать клавишу подтверждения Enter, после чего текущий буфер изменится. Просмотреть список доступных буферов можно с помощью последовательного выбора комбинаций клавиш Ctrl+X, Ctrl+B ли с помощью главного меню программы (см. скрины).

Переключение на другой буфер

Переключение на другой буфер

Смена режимов работы

Как уже отмечалось, автоматический выбор вида режима работы редактора, как правило, зависит от типа открываемого или создаваемого файла. К примеру, если это файл Python или Java, то включается режим разработки (IDE). Если это текстовый файл, то режим работы будет обычным – текстовым. Но если нужно изменить режим в принудительном порядке, то необходимо выполнить следующие действия:

  1. Сохранить содержимое текущего буфера (Ctrl+X, Ctrl+S);
  2. Для смены одного из основных режимов нажать Meta+X;
  3. Введите имя нужного режима в область минибуфера и нажмите Enter.

Изменение вспомогательных режимов производится с помощью комбинации клавиш Meta+X и выбора нужного режима в минибуфере.

Заказать виртуальный облачный сервер для работы и обучения с бесплатным доменом Вы можете на нашем сайте. Более 30 шаблонов с подготовленным программным обеспечением по выбору, круглосуточная техническая поддержка, ежедневный бекап и многие другие преимущества ждут Вас.

Подписывайтесь на наш телеграмм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.

Смотрите наш канал Youtube на https://www.youtube.com/freehostua.

Мы в чем ошиблись, или что-то пропустили?

Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.

Дата: 06.05.2024
Автор: Александр Ровник
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
navigate
go
exit
Спасибо, что выбираете FREEhost.UA