Емакс

Емакс
Emacs
Логотип Emacs
GNU Emacs, запущенный в графической среде
GNU Emacs, запущенный в графической среде
Тип Текстовый редактор
Разработчик Проект GNU
Написана на C и Emacs lisp [1]
ОС Кросс-платформенный
Версия 22.3 — 5 сентября 2008
Тестовая версия 23
Лицензия GPL
Сайт www.gnu.org/software/emacs/

Emacs (Ема́кс, Е́макс, также И́макс) — семейство многофункциональных расширяемых текстовых редакторов.

Содержание

Варианты Emacs

На сегодняшний день наиболее распространёнными являются варианты GNU/Emacs и свободным ПО, распространяемым на условиях GNU GPL. XEmacs является ответвлением или форком GNU Emacs. В 1991 году некоторые из разработчиков последнего решили «отколоться», чтобы работать над собственным (XEmacs) вариантом редактора. Раскол был вызван их несогласием с мнением Ричарда Столлмена — в то время главного куратора проекта — о дальнейшем направлении развития Emacs.

XEmacs отличается большей направленностью на внешний вид, прибли́женный к стандартным современным редакторам (использование панелей инструментов и т. п.). Кроме того, XEmacs поддерживает шрифты с нефиксированной шириной символа, изображения, внедряемые в текст и т. п. Впрочем, последние версии GNU Emacs также включают большинство этих возможностей, поэтому разница не столь заметна. Кроме того, очень многие Emacs-пакеты работают в обоих вариантах редактора и являются общими.

Терминология

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

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

  • Буфер — объект, представляющий какой-либо текст. Большинство буферов соответствуют открытым файлам, но в принципе буфер может содержать что угодно, например результаты компиляции программы или встроенные подсказки. Emacs в этом плане очень однороден и практически всё общение с пользователем, в том числе интерактивное, идёт через буферы.
  • Фрейм соответствует окну в обычном понимании этого слова. Каждый фрейм содержит область вывода и одно или несколько окон Emacs.
  • Окно — это просто прямоугольная область фрейма, которая отображает один из буферов. Помимо этого, каждое окно имеет свою строку состояния (англ. mode line), где выводится название буфера, его основной режим и т. п.
  • Область вывода (echo area) — одна или несколько (по необходимости) строк внизу фрейма, в которой Emacs выводит различные сообщения, а также запрашивает подтверждения и дополнительную информацию от пользователя.
  • Минибуфер используется для ввода дополнительной информации. Он всегда отображается в области вывода. Это такой же буфер, как и все остальные, что даёт интересный эффект: например, при операции замены текста, можно ввести многострочный текст, что невозможно в большинстве других редакторов.

Основные особенности

Основу идеологии Emacs составляют принципы «всё в одном», расширяемости, настраиваемости под пользователя и документированности.

«Всё в одном»

Функциональность Emacs можно разделить на три уровня: базовая, основной режим и дополнительные режимы. Сочетание этих трёх уровней позволяет выполнять огромное количество задач (в том числе и не связанных напрямую с редактированием текста) не выходя из редактора.

Базовая функциональность включает в себя основные операции работы с текстом, как присутствующие в любом редакторе, так и уникальные для Emacs. Сюда входят вставка и удаление текста, перемещение по тексту, открытие и сохранение файлов и т. п. Уникальным для Emacs является множество этих операций и доступность практически всех из них с клавиатуры. Так, например, по тексту можно перемещаться посимвольно, по словам, строкам, страницам, предложениям, абзацам, сбалансированным спискам (то есть по выражениям, заключённым в скобки), функциям…

Основной режим Emacs определяется типом редактируемого файла. Существуют режимы для различных языков программирования, языков разметки текста (TeX и т. п.), для просмотра директорий, для чтения и отправления электронной почты и многие другие. Основной режим определяет способ подсветки синтаксиса, способ выравнивания кода для языков программирования, специальные команды для выполнения часто используемых операций и др. Основной режим может также переопределять базовые элементы текста. Так, при редактировании программ на C и подобных языках, предложением считается одна команда программы. При этом в комментариях предложение имеет обычный текстовый смысл.

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

Расширяемость

Emacs написан на двух языках: C и Elisp (диалект Лиспа, от Emacs Lisp). При этом сам редактор является интерпретатором Elisp. По сути дела, большая часть Emacs написана на языке Elisp и её можно рассматривать как расширение к основной программе.

Пользователи могут сами создавать части Emacs, от отдельных функций до новых основных режимов. При этом можно переопределять любые Elisp-функции, в том числе и те, что являются частью самого редактора. Так что можно легко модифицировать функциональность Emacs, просто соответствующим образом «подправив» некоторые функции.

Помимо большого количества расширений, ориентированных на написание текста или разработку программ, существуют пакеты для Emacs, выполняющие функции полноценных приложений для чтения почты и новостей (например, Jabber или

Кроме этого, Emacs позволяет переопределять практически любые клавиши, как глобально, так и для каждого основного режима в отдельности. Поэтому, вы легко можете назначить часто используемое действие на свободное сочетание клавиш (или на занятое, предварительно его освободив).

Настраиваемость

Emacs написан с учётом того, что разные пользователи имеют разные предпочтения. Различные параметры редактирования можно изменять, используя Elisp-переменные. Кроме того, для удобства, а также для тех, кто не знает Elisp, предусмотрен режим настройки, где значения параметров можно вводить в специальные поля или выбирать из списков. Emacs позволяет устанавливать различные значения переменных-параметров для разных буферов. Значения переменных можно также сохранять в файлах, так что можно без дополнительных усилий редактировать C-файлы с базовым отступом в 2 пробела или в 4 — это значение можно просто сохранить в файле.

Как уже указывалось выше, можно настраивать Emacs под свои нужды, используя функции, написанные на языке Elisp, в том числе и переопределяя уже существующие. Наконец, Emacs предоставляет очень мощную возможность выполнять произвольный набор функций при наступлении некоторых условий. Такие функции добавляются в так называемые «ловушки» (англ. hook — ловушка, западня, крючок). При помощи «ловушек» можно «отлавливать» (перехватывать) определённые события (например, включение того или другого режима). Есть даже такое мощное средство, как возможность выполнения функций после каждого изменения буфера.

Документированность

Emacs обладает подробной документацией, включая и документацию по Elisp. Но особенностью Emacs является то, что каждая функция или переменная может быть снабжена документацией при своём определении. Такую документацию можно просмотреть просто указав имя функции или переменной.

Интересные факты

  • Emacs имеет режим «психотерапевта», доступный, в частности, через пункт меню «Help→Emacs Psychotherapist» (M-x doctor).
  • «Высокий» номер версий Emacs (21, 22) связан не только с высокой интенсивностью разработки редактора и его почтенным возрастом. В начале версии нумеровались как 1.15, но потом было принято решение отказаться от ведущей единицы.
  • Слово «Emacs» берет начало в аббревиатуре «Editor MACroS», наборе макросов для редактора TECO, написанный Столлменом и другими в 1976 году. Однако существует множество других, отчасти шутливых расшифровок этого слова:

Примечания

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Емакс" в других словарях:

  • Положение максимума поглощения и значения Емакс 2,4-динитрофенилгидразонов карбонильных соединений — Соединение Длина волны при максимуме поглощения, нм Емакс ·10 4 Ацетальдегид 478 2,72 Ацетон 476 …   Химический справочник

  • максимальная освещенность, Емакс — 3.5 максимальная освещенность, Емакс : Наибольшее измеренное значение освещенности в пределах участка оценки. Источник: ГОСТ Р 52066 2003: Светильники головные рудничные взрывозащищенные. Часть 2. Эксплуатационные требования …   Словарь-справочник терминов нормативно-технической документации

  • Разрешающая способность (в фотографии) — Разрешающая способность фотографирующей системы, характеризует её способность раздельно воспроизводить мелкие детали объекта; определяется наибольшим значением частоты штрихов регулярной одномерной решётки ≈ миры, при котором в фотоизображении… …   Большая советская энциклопедия

  • Разрешающая способность — I Разрешающая способность (разрешающая сила)         оптических приборов, характеризует способность этих приборов давать раздельные изображения двух близких друг к другу точек объекта. Наименьшее линейное или угловое расстояние между двумя… …   Большая советская энциклопедия

  • Коэффициент пульсации освещенности — 14. Коэффициент пульсации освещенности , % критерий оцен­ки относительной глубины колебаний освещенности в результате измене­ния во времени светового потока газоразрядных ламп при питании их пе­ременным током, выражающийся формулой где… …   Словарь-справочник терминов нормативно-технической документации

  • Коэффициент пульсации освещенности Кп — % критерий оценки относительной глубины колебаний освещенности в результате изменения во времени светового потока газоразрядных ламп при питании их переменным током, выражающийся формулой: Кп = (Емакс Емин)/2Еср, где Емакс и Емин соответственно… …   Словарь-справочник терминов нормативно-технической документации

  • максимальная — максимальная: Максимально возможная длина ЗО, в пределах которой выполняются требования настоящего стандарта и технических условий (ТУ) на извещатели конкретных типов, Источник: ГОСТ Р 52651 2006: И …   Словарь-справочник терминов нормативно-технической документации

  • ГОСТ Р 52066-2003: Светильники головные рудничные взрывозащищенные. Часть 2. Эксплуатационные требования — Терминология ГОСТ Р 52066 2003: Светильники головные рудничные взрывозащищенные. Часть 2. Эксплуатационные требования оригинал документа: 3.7 коэффициент полезного действия головного светильника (светового прибора): По ГОСТ 16703. Определения… …   Словарь-справочник терминов нормативно-технической документации

  • ТСН 23-302-99: Естественное, искусственное и совмещенное освещение. г. Москва — Терминология ТСН 23 302 99: Естественное, искусственное и совмещенное освещение. г. Москва: Аварийное освещение освещение при аварийном отключении рабочего освещения для продолжения работы (освещение безопасности) или эвакуации людей из помещения …   Словарь-справочник терминов нормативно-технической документации

  • Санитарные правила: Санитарные правила для морских судов СССР — Терминология Санитарные правила: Санитарные правила для морских судов СССР: 1.4.6. Вместимость валовая вместимость по Правилам Регистра СССР. Определения термина из разных документов: Вместимость 1.4.7. Должно означает обязательное выполнение… …   Словарь-справочник терминов нормативно-технической документации


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

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»