Emacs linux что это

Обновлено: 06.07.2024

К сожалению, Unix-системы поставляются без какого бы то ни было включающего-все-что-вы-захотите-и-гораздо-больше одного-гигантского-пакета интегрированной среды разработки, которые имеются в других системах. [1] Однако имеется возможность настроить собственную среду. Она может быть не такой уж красивой, и не очень интегрированной, но вы можете настроить ее так, как вам этого хочется. И она бесплатна. И доступны ее исходный код.

И все это называется Emacs. Некоторые питают к нему отвращение, но многие его любят. Если вы из первых, то боюсь, что этот раздел мало вас заинтересует. Также вам потребуется некоторое количество памяти для его работы--я рекомендую 8 МБ для текстового режима и 16 МБ для X в качестве минимальных требований для получения удовлетворительной производительности.

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

Здесь даже вкратце просто невозможно описать все, что может делать Emacs, но вот только некоторые из возможностей, представляющих интерес для разработчиков:

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

Выпадающие меню и встроенная система помощи.

Синтаксическое выделение и формирование отступов в зависимости от языка.

В Emacs вы можете компилировать и отлаживать программы.

При возникновении ошибки компиляции вы можете перейти к соответствующей строке исходного кода.

Дружественный интерфейс с программой info, используемой для чтения гипертекстовой документации GNU, включая документацию на сам Emacs.

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

Вы можете читать телеконференции Usenet и электронную почту во время компиляции программы.

И, несомненно, многое из того, что я не упомянул.

Emacs может быть установлен во FreeBSD как порт Emacs.

После того, как он будет установлен, запустите его и нажмите C-h t для изучения учебника по Emacs--это означает удерживание клавиши control и одновременным нажатием на клавишу h, с последующим отпусканием клавиши control и нажатием кнопки t. (Либо вы можете использовать мышь для выбора пункта Emacs Tutorial из меню Help ).

Хотя в Emacs имеются меню, стоит изучить используемые клавиатурные команды, так как при редактировании чего-либо гораздо быстрее нажать несколько клавиш, чем искать мышь и потом щелкать в нужном месте. И, если мы поговорите с опытными пользователями Emacs, то вы обнаружите, что они часто иногда выдают фразы типа `` M-x replace-s RET foo RET bar RET '', так что полезно знать, что они означают. И, в любом случае, в Emacs имеется слишком много полезных функций, чтобы уместить их все в системе меню.

К счастью, достаточно легко найти клавиатурные сокращения, так как они выводятся рядом с пунктом меню. Я советую пользоваться пунктом меню, скажем, для открытия файла, до тех пор, пока вы не поймете, как это работает и почувствуете себя уверенно, и только затем попробуете выполнить C-x C-f. Когда вы будете этим удовлетворены, переходите к изучению следующей команды меню.

Если вы не можете запомнить, что делает конкретная комбинация клавиш, выберите пункт Describe Key из меню Help и наберите ее--Emacs скажет, что она делает. Вы можете также воспользоваться пунктом меню Command Apropos для поиска всех команд, которые содержат некоторое слово, вместе с клавиатурной комбинацией.

Кстати, выражение выше означает удержание клавиши Meta , нажатие x , отпускание клавиши Meta , набор replace-s (сокращение для replace-string --еще одной особенностью Emacs является возможность сокращать команды). нажатие клавиши return , набор foo (строки, которую вы хотите заменить), нажатие клавиши return , набор bar (строки, которая заменит foo ) и нажатие return снова. Emacs выполнит операцию по поиску и замене, которую вы только что запросили.

Если вы интересуетесь, в какой точке земного шара находится клавиша Meta , то это особая клавиша, которая имеется на многих рабочих станциях Unix. К несчастью, на PC их нет, поэтому обычно это клавиша alt (или, если вам уж совсем не повезло, клавиша escape ).

Да, чтобы выйти из Emacs, нажмите C-x C-c (это означает удержание клавиши control , нажатие на x , нажатие на c и отпускание клавиши control ). Если у вас есть открытые несохранненные файлы, Emacs выдаст запрос на их сохранение. (Не принимайте во внимание документацию, в которой говорится о C-z как об обычном способе выхода из Emacs--при этом Emacs остается работать в фоновом режиме и действительно необходима в случае работы с системой, но которой нет виртуальных терминалов).

2.7.2 Настройка Emacs

Emacs имеет огромные возможности; некоторые из них являются встроенными, некоторые нужно настроить.

Вместо того, чтобы использовать для настройки собственный макро-язык, в Emacs применяется версия Lisp, специально адаптированная для редакторов, известная под названием Emacs Lisp. Это может быть оказаться весьма полезным, если вы хотите начать изучать что-то типа Common Lisp, потому что он значительно меньше, чем Common Lisp (хотя все же весьма большой!).

Лучше всего изучать Emacs Lisp, скачав Учебник по Emacs

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

2.7.3 Пример файла .emacs

К сожалению, здесь слишком много всего, чтобы объяснить подробно; однако на паре мест стоит остановиться подробнее.

Все, что начинается с символа ; , является комментарием и игнорируется Emacs.

В первой строке -*- Emacs-Lisp -*- нужна для того, чтобы мы могли редактировать сам файл .emacs в редакторе Emacs и имели все удобства редактирования текстов Emacs Lisp. Emacs обычно пытается угадать характер содержимого на основе имени файла, и этого корректно может не получиться в случае .emacs.

Клавиша tab в некоторых режимах работает как функция формирования отступа, поэтому при нажатия клавиши табуляции в текущей строке кода будет сформирован отступ. Если вы хотите разместить где-либо символ tab , то при нажатии клавиши tab удерживайте клавишу control .

This file supports syntax highlighting for C, C++, Perl, Lisp and Scheme, by guessing the language from the filename.

В Emacs уже имеется предопределенная функция с именем next-error . В окне вывода результата компиляции она позволяет вам передвигаться от одной ошибки компиляции к другой по нажатию M-n; мы определили дополнительную функцию previous-error , которая позволяет переходить к следующей ошибке по нажатию M-p. Самой приятной возможностью является то, что по нажатию C-c C-c файл с исходным текстом, в котором произошла ошибка, будет открыт на соответствующей строке.

Мы включили возможность Emacs работать как сервер, так что если вы делаете что-то вне Emacs и хотите отредактировать файл, то можете просто набрать

и после этого сможете редактировать файл в вашем Emacs! [2]

Example 2-1. Примерный файл .emacs

2.7.4 Расширение количества языков, с которыми может работать Emacs

Итак, хорошо, если вы собираетесь программировать только на языках, уже описанных в файле .emacs (C, C++, Perl, Lisp и Scheme), но что случится, если вышел новый язык под названием ``whizbang'', в котором имеется масса привлекательных возможностей?

Первым делом нужно проверить, не поставляется ли с языком whizbang с файлами для Emacs, которые служат для описания языка. Обычно они имеют окончание .el, что означает ``Emacs Lisp''. Например, если whizbang является портом FreeBSDm мы можем поискать такие файлы командой

и установить их, скопировав их в каталог Lisp для Emacs вашей системы. Во FreeBSD 2.1.0-RELEASE это каталог /usr/local/share/emacs/site-lisp.

Так, для примера, если результат выполнения команды поиска выглядит как

Затем нам нужно решить, какое расширение имеют файлы с исходными текстами на языке whizbang. Пусть, для примера, они все оканчиваются на .wiz. Нам нужно добавить запись в наш файл .emacs, чтобы Emacs смог использовать информацию из whizbang.el.

Найдите строку auto-mode-alist в файле .emacs и добавьте строку для whizbang, такую, как:

Это означает, что Emacs будет автоматически переходить в режим whizbang-mode , когда вы редактируете файл, оканчивающийся на .wiz.

Чуть ниже вы найдете запись для font-lock-auto-mode-list . Добавьте к ней whizbang-mode следующего вида:

Это означает, что Emacs всегда будет использовать режим font-lock-mode (то есть выделение синтаксических конструкций) при редактировании файлов .wiz.

И это все, что нужно. Если есть что-то, что вы хотите делать автоматически при открытии файлов .wiz, то можете добавить строку whizbang-mode hook (смотрите my-scheme-mode-hook в качестве простого примера, который добавляет auto-indent ).

Notes

В коллекции портов имеется несколько мощных свободно распространяемых IDE, таких, как, например, KDevelop.

Многие пользователи Emacs указывают emacsclient в качестве значения своей переменной окружения EDITOR, поэтому это происходит всякий раз, когда им нужно отредактировать файл.

Начну с небольшой истории. Лет так 15 назад ездил я на подработку сисадмином программистом в славный городе Mannheim, West Germany. Когда я приехал на работу и развернул своё рабочее окружение, большинство дойчей вообще не сильно поняли в чём я работаю, а вот директор конторы сразу мне сказал: «Ist das Emacs? Sehr gut!», добавив также что никто кто из текущих программистов не смог его освоить. А по честному, не такой уж я особенный — мне просто повезло: готовый конфиг мне дал один добрый человек, и помог мне разобраться с редактором на первых шагах. Я, в свою очередь хочу поделиться своим опытом с остальными, и решил сделать серию статей для начинающих и не очень, с рассмотрением разных полезных фич emacs.

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

Первое — слабость emacs в его силе. Легкость освоения (learnability) пострадала от простоты переконфигурирования — каждый перестраивает радактор под себя, и часто настолько кардинально, что другой пользователь того же редактора может его не узнать.

Мой конфиг .emacs обростал новыми фичами последние 15 лет, и в этом одна из проблем Emacs: дать готовый конфиг в руки начинающему просто, а вот будет ли с этого толк? Расшарю я его допустим сейчас на Web (как впрочем уже давно собственно и сделано) как сотни других энтузиастов. Но, начинаещему это этого проку мало, т к скорее всего он сможет сделать только две вещи (из которых скорее всего не будет делать ни одну, по причине изначальной лени): (1) или взять конфиг целиком со всеми кастомными наворотами и дополнениями, или (2) попытаться скрестить «бульдога с носорогом» и надёргать рецептов из нескольких конфигов разных вендоров — а это долго, муторно.

Разрабочики Emacs пытаются снизить барьер входа новичков пытаясь выдать что то похожее на общепритяные стандарты (CUA mode: Ctrl+C, Ctrl+V, запись *scratch*, и т п) но этого явно мало для редактора с 20ти летней историей — барьер для освоения держится на высоте, отсекая новичков.

Я решил пойти другим путём и облегчить понимание того, насколько им нужна та или иная фича, сделав демонстрацию каждой. Вместо того, чтобы просто выложить свой конфиг (типа «кто надо тот разберётся») я постараюсь его сам разобрать по кусочкам, объяснив каждый отдельный модуль и настройку.

Ведь не бывает идеального конфига «для всех», и то, что хорошо для меня, может оказаться неудобным допустим тому же веб дизайнеру.

Поэтому, эта статья не будет описывать какую то отдельную фичу — я пройдусь по всем, удобным с моей точки зрения. Это будет [не]большой Tutorial который позволит выбрать то, что нужно каждому по отдельности.

Введение

В введении в emacs показан сам редактор, комбинации клавиш для начального изучения, и объяснения по ходу дела базовой концепции редактирования.

Изучение emacs чем-то сродни изучению иностранного языка: материала много, комбинации клавиш учить надо (не обязательно, но надо, если хотите, чтобы была практическая польза), некоторые новые концепции надо понять.

  • C-x C-f — открыть файл
  • C-x C-s — записать файл
  • C-x C-c — выход из редактора
  • C-x b — перейти в другой открытый файл
  • C-x C-b — показать все открытые файлы,
  • C-x k — закрыть файл (но не редактор)
  • C-x 2 — разбить окно по горизонтали
  • C-x 3 — разбить окно по вертикали
  • C-x 0 — закрыть окно
  • C-x 1 — оставить только одно открытое окно

После просмотра этого видео также рекомендую пройти английский туториал по emacs, который доступен в самом редакторе по клавише: C-h t.

IDO-mode

Удобный режим для быстрого доступа к файлам, открытым файлам, и другим спискам внутри редактора. В совокупности с активированным uniquify режимом позволяет *очень* быстро найти нужное.Особенности: по клавише C+<пробел> начинается ввод новой подстроки. По клавише C-f идёт fallback (возврат) на обычный (не-IDO) ввод.

Работа с файлами удалённо по протоколам SSH, FTP, Samba и т п

Возможно это не самая навороченная фича emacs, т к многие скажут что намного проще
зайти на удалённый сервер консолью и там уже всё отредактировать. Но консоль, увы не так удобна как GUI приложение, также часто файл удобнее и быстрее редактируется локально, и записывается уже результат, а не медленные нажатия клавиш в случае консоли. Открыв несколько файлов удалённо, легко можно перебрасывать куски текста любой длинны и содержания, избегая использования мышового буфера.

В заключение

Emacs — действительно не сильно сложный редактор. Но это как раз тот пример, когда освоив минимум, нелья на этом останавливаться, ибо сила emacs — в доступных библиотеках и дополнительных функциях. Единственный способ добиться максимального результата — это выучить комбинации клавиш, названия функций и сами по себе концепции и функционал.

В следующих статьях по этой теме я опишу работу с Dired (файл менеджер), работу с системами контроля версий на примере SVN и Mercurial, работу по поиску текста (rgrep), закладки по тексту, интерактивный показ ошибок, среду разработки для Python и многое другое. Просьба коментировать какие именно дополнительные функции интересны.

Почти каждый программист, который хоть немного любит свою работу и не привязан к конкретному языку программирования, рано или поздно придет к использованию Emacs… или vim… или STE… или еще к одному из множества текстовых редакторов.

Собственно, почему именно Emacs? Причина первая и самая главная — он мне нравится, за причинами же менее вескими, но более объективными добро пожаловать под кат.

В процессе чтения этой статьи у пользователей других редакторов может появиться желание воскликнуть, что в их редакторе такое тоже возможно. Это правда — и это замечательно, но не суть важно — в конечном счете каждый пользователь все равно выберет себе редактор по вкусу.

Что это такое?

Если отбросить шутки, то Emacs — текстовый редактор. Текстовый редактор с колоссальными возможностями для расширения. Многие редакторы в той или иной мере расширяемы, в случае же Emacs важна именно степень расширяемости. Именно она выделяет его среди многих других.

Часть редактора написана на С — эта часть отвечает за базовое взаимодействие с ОС, отрисовку окон, ввод-вывод. Практически весь код, отвечающий за работу с текстом, написан на elisp, или же является оберткой для С-шных функций, которые можно вызывать из того же elisp.

Именно такой подход позволяет сделать из Emacs что угодно — почтовый клиент, броузер, терминал, клиент для wordpress, интерфейс для MySQL и многое, многое другое. Emacs, являясь текстовым редактором, является также и мощной платформой для создания приложений.

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

Кому не нужен Emacs?

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

Если вы испытываете непрерывное желание рефакторить по мелочи, борясь за совершенство кода, например, переименовывать переменные, менять иерархию классов, интерфейсы методов и т.п. — то Emacs тоже вам скорее всего не нужен. Но сколько-то серьезная поддержка рефакторинга существует на сегодняшний день хорошо если для полудюжины языков, и если ваш язык не входит в это число, то почему бы и не попробовать Emacs?

Есть обширная категория людей, которые работают программистами, но которым программирование неинтересно. Они приходят на работу, пишут код, изучают новые технологии по необходимости, но программирование для них есть лишь способ заработка, интересы и увлечения у них другие. Ну не надо им это все. Когда они выходят из офиса, то забывают все рабочие дела и живут обычной человеческой жизнью. Если вы один из таких людей — Emacs вам просто не нужен.

А кому он нужен?

Если вы относитесь к одной из следующих категорий людей, то Emacs вам попробовать стоит(если вы конечно и так уже не счастливый пользователь похожего редактора):

  • вы пишете на языках, поддержка которых в ведущих IDE далека от совершенства
  • вы пишете на нескольких языках, и вам надоело каждый раз переключаться в нужную IDE
  • вы признаете, что эргономика, скорость работы и отзывчивость большинства современных IDE оставляет желать лучшего
  • вам лень слишком часто тянуться к мыши для выполнения каких-либо действий
  • вы хотите иметь полностью унифицированную среду разработки на работе и дома, или просто на нескольких компьютерах сразу
  • вы хотите иметь удобную среду для организации заметок и ведения справочной информации, к которой можно обращаться не покидая редактора
  • вы занимаетесь рефакторингом по делу — т.е. вам нужно не сделать код идеальным, а привести абсолютно нечитаемый код к состоянию поддерживаемости
  • вам часто приходится работать с двумя-тремя файлами, из которых вы перебиваете куски спецификаций, или же сравниваете логи, или же переписываете с языка на язык… И хотели бы чтобы все это умещалось на экране.
  • вам нужна среда, которая будет запущена неделями и не будет потреблять огромное количество памяти, тормозить, держа при этом открытой сотню файлов и временных буферов
  • вы испытываете потребность в автоматизации редактирования большого числа файлов
  • вы используете многословный язык, который поощряет написание большого количества вспомогательного кода
  • вам постоянно чего-то не хватает в стандартных решениях и вы хотите малой кровью дописывать необходимые мелочи под себя
  • вам нужны продвинутые возможности по обработке текста — многострочное редактирование, редактирование прямоугольных областей, макросы, передача кусков выделенного текста на обработку внешним утилитам и т.п.
  • у вас бывали ситуации, когда из-за удивительной политики безопасности вы проводили часы редактируя что-то через ssh, не имея возможности использовать sshfs, поскольку та самая политика разрешает только один единовременный коннект(хотя если быть честным — vim оказывается доступным на таких серверах гораздо чаще)
  • вы предпочитаете универсальный способ работы со всем — текстом, файлами, системой контроля версий, терминалом, базой данных
Мифы о Emacs
1. Emacs устарел

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

Тем не менее вы вполне можете попасть в коллектив, где за использование текстового редактора вместо серьезной(тм) IDE вас будут презирать. Но это скорее проблема коллектива, а не Emacs.

2. Emacs не годится для разработки в современных условиях

Совершенно верно, что Emacs «не понимает», что перед ней код, а не текст. Поэтому проверки типов у вас не будет, «умного» автодополнения тоже(ну т.е. иногда будет — для некоторых языков). Забудьте про просмотр документации прямо в IDE, хотя ладно — для некоторых языков такая фича есть. Никаких умных рефакторингов. Предупреждений и советов, кроме тех, что способен выдать компилятор или интерпретатор, тоже не будет.

Тем не менее это не помешает вам писать хороший код. А также писать код быстро и эффективно. Вообще для того, чтобы при использовании полновесной IDE вместо Emacs ваша продуктивность выросла сколько-нибудь значительно, ваша работа должна быть очень и очень специфичной.

Я проводил эксперимент — импортировал в PHPStorm текущий проект на PHP размером в 400 000 SLoC и пробовал работать в нем несколько дней. После этого я вернулся на Emacs и… единственная показавшаяся мне полезной, функция, которая была в IDE, но отсутствовала в Emacs была добавлена в оный после нескольких минут гугления. Это не отменяет того, что в PHPStrom есть куча вещей, которые в Emacs отсутствуют. Другой вопрос, и вопрос важный, — так ли нужны эти фичи для продуктивности?

Все описанное выше — мое субъективное мнение, но, с другой стороны, достоверных исследований того как IDE повышает продуктивность работы по сравнению с хорошим текстовым редактором, мне найти так и не удалось. Может быть вам повезет больше.

3. Emacs сложен для освоения

Он не сложен, но обладает огромным количеством разных функций, которые были добавлены за более чем два десятилетия его существования. Само освоение редактора занимает неделю — за это время вы изучите основные приемы редактирования и привыкните к сочетаниям клавиш. Этого будет достаточно, чтобы чувствовать себя комфортно во время работы.

Второй этап — это выбор среди того множества функций именно тех, что нужны вам для работы. Он может растянуться на месяцы и даже годы. А скорее всего не закончится никогда — для Emacs постоянно выходят новые расширения, которые могут вам пригодиться.

К чему стремиться

Чтобы проникнуться духом олдскульного всемогущества рекомендую к просмотру следующие видео:

Этот документ предназначен для тех пользователей Linux, которые хотят узнать о Emacs и научиться работать с ним.

Этот документ не является специфичным только для ALT Linux . Его можно использовать для работы с Emacs из других дистрибутивов Linux, в других вариантах операционной системы UNIX, а также с Emacs для Windows.

Что такое Emacs?

В зависимости от ситуации, Emacs может быть:

программой для чтения почты и новостей Usenet;

интегрированной средой разработки (IDE);

всем, чем угодно.

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

Первая версия редактора Emacs была написана в 70-х годах 20-го столетия Richard Stallman (Ричардом Столманом) как набор макросов для редактора TECO . В дальнейшем, уже будучи основателем Фонда Свободного программного обеспечения Free Software Foundation и проекта GNU, Stallman разработал GNU Emacs в развитие оригинального Emacs и до сих пор сопровождает эту программу. Вы можете подробнее ознакомиться с историей редактора, прочитав статью, располагающуюся по этому адресу.

Emacs является одним из старейших редакторов. Он использовался тысячами программистов на протяжении последних 20 с лишним лет, для него создано много дополнительных пакетов расширений. Эти дополнения позволяют делать с помощью Emacs такие вещи, которые Stallman , вероятно, даже не считал возможными в начале своей работы над редактором. Более подробно я расскажу о них в следующих разделах.

Разновидности Emacs

Кроме двух основных версий, существует и множество других редакторов, считающихся вариантами Emacs. Полный их список можно найти на странице Emacs Implementations and Literature.

В данном документе я буду рассказывать, прежде всего, о GNU Emacs, входящем в поставку ALT Linux . Однако большая часть сказанного применима и для XEmacs, а также для версий Emacs в других дистрибутивах Linux.

Основы работы с Emacs

Используемая терминология

В этом разделе описываются термины Emacs, с которыми вы встретитесь при использовании редактора.

Точка, область и метка

Метка указывает на позицию в тексте. Она определяет один конец области, в то время как точка находится на другом конце области. Многие команды работают с текстом целиком от точки до метки. Каждый буфер имеет свою метку.

Окна Emacs не имеют ничего общего с окнами графической среды X Window. Одно окно X Window может быть разбито на несколько окон в смысле Emacs, в каждом из которых отображается отдельный буфер. Однако вы можете открывать для отображения буферов Emacs и дополнительные окна X, например, при сравнении двух файлов. Эти новые окна X в жаргоне Emacs называются фреймы .

Читайте также: