Статья также доступна на украинском (перейти к просмотру).
Содержание
Расширяемый текстовый редактор Emacs в известной степени является заменой существующим средствам работы с текстом в Linux-системах. Он вобрал в себя мощные возможности известного редактора Vi, в то же время придав гибкость благодаря наличию многих режимов работы с текстом как основных, так и вспомогательных. В любом случае, его использование расширит и разнообразит подходы к обработке текстовых данных. Рассмотрим подробнее его возможности и использование на сервере Ubuntu 22.04.
Общие характеристики редактора Emacs
Средство кроссплатформенное и распространяется по общедоступной лицензии GNU GPL, что способствует росту его популярности среди пользователей. Редактор с самого начала своего создания был ориентирован на работу только в текстовых терминалах и поэтому имеет терминологию, ориентированную именно на этот режим. Особенно это проявляется в строении пользовательского интерфейса. На Рисунке 1 изображена схема интерфейса программы с названиями составляющих объектов. Рассмотрим назначение каждого из объектов.
Рисунок 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
Изменим текущий аккаунт:
$ su -l testing_emacs
Приглашение командной строчки: testing_emacs@dedicated:~$. То есть, можем работать дальше.
Обновим индекс пакетов:
$ sudo apt update
Проверим наличие редактора на сервере:
$ emacs
Можно убедиться, что редактор Emacs отсутствует в нашей системе и перейдем к процессу инсталляции.
Установка Emacs
Установим программу с помощью следующей команды:
$ sudo apt install emacs
Подтверждаем выделение дополнительного дискового пространства и процесс продолжается.
Конечное окно процесса инсталляции программы выглядит следующим образом:
Результат: Setting up emacs (1:27.1+1-3ubuntu5.1), то есть Emacs версии 1.27.1 успешно установлен в нашей системе. Перейдем к рассмотрению работы с ним.
Работа с редактором 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) (см. скрин).
В результате в нижней части кадра образуется еще одно окно для выбора языка документации, как показано ниже. Для выбора нужного языка его название можно вручную ввести в минибуфер или воспользоваться клавишами перемещения курсора для ускорения процесса, после чего нажать 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 позволяет выполнять более сложные операции с текстом, которые максимально максимально приближаются к текстовым процессорам. Наиболее значимые из них:
- Маркировка текстовых областей;
- Работа с внутренним буфером;
- Удаление текста;
- Отмена последней проделанной операции;
- Поиск и замена текста;
- Выполнение операции выравнивания текста;
- Преобразование регистра символов;
- Работа с окнами;
- Смена режимов работы редактора.
Рассмотрим кратко каждую из указанных функций.
Маркировка текстовых областей. Алгоритм действий будет следующим:
- Курсор помещается в позицию, из которой нужно выделить область;
- Отмечаем указанную позицию (Ctrl+@);
- Курсор помещается в конечную позицию области.
Результат выполнения указанных действий показан ниже, то есть нужная область будет выделена.
Вы можете динамически изменять размер выделенной области, удерживая клавишу Shift и перемещая курсор в нужную позицию с помощью клавиш перемещения курсора.
Для снятия выделения следует дважды нажать комбинацию Ctrl+@.
Работа с буфером. Приведем основные операции с буфером:
- Копирование (Meta+W);
- Вставка (Ctrl+Y);
- Вырезание (Ctrl+W).
Удаление текста. Приведем несколько вариантов:
- Традиционное использование клавиш Del и Backspace;
- Удаление слов в начальной позиции которых находится курсор (Meta+D);
- Удаление строчек, начиная с позиции нахождения курсора и до конца строчки (Ctrl+K);
- Удаление предложений (Meta+K).
Отмена последней проделанной операции. Для отмены нажмите Ctrl+X, а затем клавишу U.
Поиск и замена текста. Варианты выполнения поиска:
- Поиск вперед (Ctrl+S);
- Поиск назад (Ctrl+R).
После нажатия одной из указанных комбинаций клавиш в области минибуфера будет предложено ввести слово поиска, как показано ниже. Введем слово «хостинг».
По результатам поиска будут выделены в тексте все вхождения искомого слова (см. скрин).
Алгоритм замещения слов в тексте:
- Нажмите комбинацию Meta+%;
- В область минибуфера ввести слово, которое нужно заместить, после чего нажать Enter;
- В область минибуфера ввести слово или фразу, которым нужно заменить указанное слово, после чего нажать Enter.
В результате выполнения команды в тексте будут выделены все вхождения замещаемого слова. Управлять замещением можно путем ввода в область минибуфера соответствующих управляющих символов: «y» – заменить; «n» – перейти к следующему; «q» – выход из режима замещения.
Выполнение операции выравнивания текста. В редакторе доступно выравнивание текста по левому краю, по правому краю и по центру.
Для выравнивания строчки необходимо поместить курсор на ее начало и нажать комбинацию Meta+O, а потом Meta+S.
Для выравнивания текстовой области алгоритм действий будет следующим:
- Выделить область;
- Нажать Meta+X;
- В область минибуфера ввести «set-justification-» и нажать Tab;
- Из предложенных предложений выравнивания выберите нужное значение, например, «set-justification-left» и нажать Enter.
Преобразование регистра символов. Указанная операция может быть выполнена с помощью разных комбинаций клавиш в зависимости от конкретной задачи. Приведем несколько распространенных вариантов:
- Преобразование слова в нижний регистр символов (Meta+C);
- Преобразование слова в верхний регистр (Meta+U);
- Преобразование абзаца в верхний регистр (Выделить, после чего последовательно нажать комбинации Ctrl+X, Ctrl+U).
Работа с окнами. Как уже отмечалось, содержимое каждого буфера отображается в отдельном окне. Программа предоставляет возможность переключения между окнами буферов по аналогии с окнами графического интерфейса. Имя буфера обычно совпадает с именем файла и отображается в строке состояния в нижней части окна.
Чтобы переключиться на другой буфер нужно нажать комбинацию Ctrl+X, а затем клавишу B. При этом имя буфера необходимо ввести в область минибуфера и нажать клавишу подтверждения Enter, после чего текущий буфер изменится. Просмотреть список доступных буферов можно с помощью последовательного выбора комбинаций клавиш Ctrl+X, Ctrl+B ли с помощью главного меню программы (см. скрины).
Смена режимов работы
Как уже отмечалось, автоматический выбор вида режима работы редактора, как правило, зависит от типа открываемого или создаваемого файла. К примеру, если это файл Python или Java, то включается режим разработки (IDE). Если это текстовый файл, то режим работы будет обычным – текстовым. Но если нужно изменить режим в принудительном порядке, то необходимо выполнить следующие действия:
- Сохранить содержимое текущего буфера (Ctrl+X, Ctrl+S);
- Для смены одного из основных режимов нажать Meta+X;
- Введите имя нужного режима в область минибуфера и нажмите Enter.
Изменение вспомогательных режимов производится с помощью комбинации клавиш Meta+X и выбора нужного режима в минибуфере.
Заказать виртуальный облачный сервер для работы и обучения с бесплатным доменом Вы можете на нашем сайте. Более 30 шаблонов с подготовленным программным обеспечением по выбору, круглосуточная техническая поддержка, ежедневный бекап и многие другие преимущества ждут Вас.
Подписывайтесь на наш телеграмм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.
Смотрите наш канал Youtube на https://www.youtube.com/freehostua.
Мы в чем ошиблись, или что-то пропустили?
Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.
Дата: 06.05.2024 Автор: Александр Ровник
|
|
Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:
comments powered by Disqus