GNU Emacs (від англ. GNU Editor MACroS) — потужний розширюваний, з великими можливостями у налаштуванні, екранний текстовий редактор. Є варіантом реалізації Emacs організації GNU. Створений Річардом Столменом.

GNU Emacs
Робоче вікно GNU Emacs при редагуванні однієї із версій цієї статті, в режимі wikipedia-mode, кольорова тема color-theme-goldenrod, шрифт Terminus
Тип текстовий редактор, інтерпретатор
Автор Річард Столмен
Розробник проєкт GNU
Перший випуск 1976 рік
Стабільний випуск 27.2 (25 березня 2021; 3 роки тому (2021-03-25))
Операційна система Unix, FreeBSD, Linux, MS Windows та інші
GNU фреймворк Xawd і GTK
Мова програмування C та Emacs Lisp
Українська мова ні
Ліцензія GNU GPL
Онлайн-документація gnu.org/software/emacs/manual/html_node/emacs/index.html
Репозиторій git.savannah.gnu.org/cgit/emacs.git
Вебсайт gnu.org/software/emacs

Особливості ред.

GNU Emacs має такі особливі характеристики:

потужність
має засоби не тільки для простої вставки та видалення тексту, а й управління підпроцесами, автоматичного розставлення відступів та перенесення в програмах, одночасного перегляду та редагування більш ніж одного файлу, редагування форматованого тексту, може враховувати літери, слова, рядки, речення, абзаци та сторінки, а також вирази та коментарі в різних мовах програмування.
автоматична документація
в будь-який момент роботи з редактором, користувач може звернутись до вбудованої системи довідки, аби отримати інформацію про комбінацію клавіш, команду редактора, режим редагування тощо.
конфігурованість
користувач має можливість контролювати майже всі можливі налаштування роботи редактора, починаючи від визначення символів початку та кінця коментарів, до перевизначення команд закріплених за клавішами або комбінаціями клавіш.
розширюваність
функціональні можливості редактора можна розширювати додаванням абсолютно нових команд, написаних мовою програмування Lisp. Ці програми виконуються в інтерпретаторі Emacs. Функціональність Emacs можна розширювати прямо під час роботи в редакторі. Майже будь-яку частину Emacs можна змінити без створення нової копії Emacs. Більша частина команд редагування в Emacs написано мовою програмування Lisp, за виключенням деяких функцій, які написано мовою програмування C та скомпільовано для підвищення ефективності роботи.

Вважається, що GNU Emacs доступний на найбільшій кількості апаратних платформ серед усіх нетривіальних програмних систем. Може працювати як в текстовому режимі на текстових терміналах, так і в графічному в графічних середовищах.

Використання ред.

Типові команди ред.

В нормальному режимі редагування, Емакс поводиться як і решта текстових редакторів: клавіші з друкованими символами (a, b, c, 1, 2, 3 тощо) вставляють відповідні символи в текст, клавіші переміщення змінюють місце розташування курсора, бекспейс видаляє текст, і так далі. Інші команди викликаються за допомогою натискання спеціальних клавіш (контрол, Control, або альт, Alt) разом зі звичайними. Будь-яка команда редагування насправді є викликом функції із середовища Емакс Лісп. Навіть, просте натискання a для вставки a призводить до виклику функції, в цьому випадку, self-insert-command.

Деякі із типових команд перелічено нижче; решту команд можна знайти в довідці Емакса. Клавішу «Ctrl» позначено літерою С, а мета, або «Alt» літерою М.

Команда Комбінація клавіш Описання
forward-char C-f Пересунути курсор на наступний символ (вправо).
backward-char C-b Пересунути курсор на попередній символ (вліво).
previous-line C-p Перейти на попередній рядок (вгору).
next-line C-n Перейти на наступний рядок (вниз).
forward-word M-f Перейти на одне слово вперед.
backward-word M-b Перейти на одне слово назад.
beginning-of-line C-a Перейти на початок рядка.
end-of-line C-e Перейти на кінець рядка.
isearch-forward C-s Почати інкрементний пошук вперед.
isearch-backward C-r Почати інкрементний пошук назад.
undo C-/ Скасувати останню зміну, і попередні при повторному виклику.
keyboard-quit C-g Скасувати поточну команду.
fill-paragraph M-q Розбити параграф на рядки.
find-file C-x C-f Відкрити файл (слід вказати ім'я) в окремому буфері для редагування.
save-buffer C-x C-s Зберегти поточний буфер у відповідному файлі.
write-file C-x C-w Зберегти поточний буфер у файлі з вказаним ім'ям.
save-buffers-kill-emacs C-x C-c Запропонувати зберегти зміни, а потім закрити Емакс.
set-marker C-[space]/C-@ Встановити маркер на початок регіону тексту, який слід копіювати або вирізати.
cut C-w Вирізати весь текст між маркером та поточним місцем знаходження курсора.
copy M-w Скопіювати текст між маркером та поточним місцем знаходження курсора.
paste C-y Вставити текст з буфера обміну Емакса.
paste special C-x C-r Вставити спеціальний текст із буфера обміну Емакса.
kill-buffer C-x k Закрити буфер з вказаним ім'ям, або поточний буфер, якщо ім'я відсутнє.

Додаткові пакети ред.

Існує велика кількість додаткових пакетів розширення функціональності системи. Так, в стандартному дистрибутиві GNU Emacs є пакети для емуляції терміналів, поштовий клієнт, календар, клієнт Usenet, файловий менеджер, переглядачі довідкових сторінок, документів допомоги GNU Info тощо. Існують макроси для полегшення редагування файлів різних форматів (тексти програм, ASCII Art, тексти в форматі SGML, XML та LaTeX тощо).

GNU Emacs, також, може використовуватись як інтегроване середовище для створення програм, документів, сайтів. Наприклад:

  • Org - програмний засіб для ведення нотаток, списків завдань, планування та мова розмітки даних.
  • Project.el додає інструменти для взаємодії з початковим кодом проєктів, а також навігації та пошуку.
  • nxml-mode призначено для полегшення роботи з XML документами. Макроси з цього пакету додають можливості валідації XML документів проти RELAX NG XML схем, автоматичне розставлення відступів тощо.
  • VC додає засоби роботи з репозиторіями систем керування версіями.

Починаючи з версії 24 в GNU Emacs вбудований менеджер пакетів package.el, завдяки якому можна встановити додаткові пакети за допомогою команди M-x package-install. Найвідоміші репозиторії:

Інші популярні [Архівовано 11 січня 2022 у Wayback Machine.] пакети, що не входять до складу GNU Emacs:

Інформацію про додаткові макроси та пакети також можна знайти на сайті EmacsWiki [Архівовано 6 грудня 2012 у Wayback Machine.].

Окрім редагування текстів та документів, Emacs може використовуватись як середовище для виконання комп'ютерних ігор. До складу стандартного дистрибутиву GNU Emacs включено відому програму Eliza, запустити яку можна в редакторі командою M-x doctor, Tetris та інші.

Див. також ред.

Посилання ред.

Примітки ред.