• База знань
  • /
  • Блог
  • /
  • 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 та Мета (у випадку її присутності). На комп’ютерах класу Mac Apple замість Alt застосовують OPTION, на інших – EDIT. Клавіші Alt та Esc замінюють собою Мета і тому отримали назву метаключі. Вони завжди використовуються в комбінації із 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