GNU Emacs

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

Особливості

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. Найвідоміші репозиторії:

  • GNU Emacs Lisp Package Archive - офіційний репозиторій проєкту який містить пакети схвалені FSF.
  • NonGNU ELPA [Архівовано 25 січня 2022 у Wayback Machine.] - також є офіційним, але на відміну від GNU ELPA не вимагає передавати авторські права.
  • MELPA [Архівовано 19 лютого 2022 у Wayback Machine.] - неофіційний репозиторій, але містить найбільшу кількість пакетів.

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

  • Magit - інтерфейс до системи керування версіями Git.
  • Company [Архівовано 12 січня 2022 у Wayback Machine.] - фреймворк для автодоповнення.
  • Evil [Архівовано 16 лютого 2022 у Wayback Machine.] емулює текстовий редактор Vim.
  • LSP mode [Архівовано 15 лютого 2022 у Wayback Machine.] додає підтримку LSP.
  • Flycheck [Архівовано 18 травня 2021 у Wayback Machine.] - система перевірки синтаксису.
  • AUCTeX робить GNU Emacs зручним середовищем для підготовки документів TeX.
  • emacs-wiki-mode надає засоби створення та підтримки локальних Wiki сайтів. А mediawiki-mode [Архівовано 15 лютого 2022 у Wayback Machine.]  — полегшує редагування статей Wikipedia.

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

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

Див. також

  • Emacs Lisp — мова програмування макросів в GNU Emacs.
  • Локалізація GNU Emacs — приклад налаштування GNU Emacs для роботи з кириличними текстами.
  • wikipedia-mode — застосування Emacs для редагування статей Вікіпедії.

Посилання

  • Офіційна сторінка GNU Emacs [Архівовано 13 червня 2006 у Wayback Machine.]
  • EmacsWiki [Архівовано 6 грудня 2012 у Wayback Machine.] — Wiki присвячена Emacs.
  • Початок перекладу підручника з GNU Emacs(укр.)

Примітки

  1. https://www.gnu.org/software/emacs/
  • п
  • о
  • р
Історія
Маніфест GNU • Проєкт GNU Фонд ВПЗ Історія ВПЗ
Ліцензії
GNU GPL GNU LGPL Affero GPL GNU FDL GPL linking exception[en]
Програмне
забезпечення
GNU (варіанти) • Hurd GNOME Bash GCC GRUB GNU Emacs • Guile glibc Coreutils Autotools • GNUnet •GNU linker GNU DebuggerGNUzilla (GNU IceCat) • Gnash • Guix Shepherd інші пакети...
Персони
Alexandre Oliva • Benjamin Mako Hill • Bradley Kuhn • Eben Moglen • Federico Heinz • Георг Греве • Джошуа Гей • Loïc Dachary • Мет Лі • Ricardo Galli • Річард Столмен Robert Chassell • William John Sullivan
Інше
Суперечка про найменування GNU/Linux • Revolution OS BadVista • Defective by Design
Програмне забезпечення Це незавершена стаття про програмне забезпечення.
Ви можете допомогти проєкту, виправивши або дописавши її.