В чем разница между буфером, файлом, окном и фреймом?

28

Задавая вопросы на этом сайте, люди иногда говорят о «окнах», когда они имеют в виду «кадры» и «буферы» или «файлы», когда они имеют в виду «окна». Так:

Q: В чем разница между буфером, файлом, окном и фреймом?

(Я задаю этот вопрос в духе этой комбинации вопросов и ответов : для содействия правильному использованию терминов.)

Дэн
источник

Ответы:

32

Emacs предшествует современным оконным операционным системам, поэтому его терминология также предшествует текущим условиям. К сожалению, это означает, что новым пользователям и опытным пользователям иногда трудно понять друг друга, так как они используют термины по-разному.

Вкратце:

  • «Рамки» для Emacs - это «окна» для всего остального
  • «Окна» являются подразделениями фреймов (например, «оконные панели»)
  • «Буферы» содержат содержимое, которое вы отображаете / редактируете в окнах
  • Когда мы «открываем файл», технически мы открываем буфер, который «посещает» этот файл

Следующий аннотированный скриншот иллюстрирует эти моменты.

аннотированный скриншот

  • Этот сеанс Emacs имеет два кадра (синий контур) - что для большинства других программ мы бы назвали «окнами».
  • Всего открыто три окна Emacs (красный контур): одно в левой рамке и два в правой рамке.
  • Единственное окно в левом кадре отображает scratch буфер . Он не связан с каким-либо файлом (то есть посещает его) .
  • В верхнем окне в правом фрейме отображается буфер example.org , который, в свою очередь, просматривает файл ~/path/to/example.org .
  • Нижнее окно в правом кадре отображает косвенный буфер example2 , содержимое которого совпадает с содержимым буфера example.orgв верхнем окне.

Итак, вот резюме:

  • кадры - это то, что вы называете «окнами» в основном во всех других ваших программах
  • окна делятся на рамы
  • буферы содержат то, что вы отображаете в окнах
  • буферы могут или не могут посещать (то есть быть связаны с) файл
Дэн
источник
7

Я хотел бы отметить читатель (1) глоссарии из Emacs Wiki и (2) ручной Emacs для такой информации.

Также на страницу EmacsWiki Newbie , на которой есть много хорошей вводной информации о таких вещах. И в руководстве Emacs в целом, что также вводит такие вещи хорошо: C-h rтогда iпосле чего печатать все , что вы хотите узнать о, например, window.

Страница EmacsWiki, связанная со своим глоссарием для окна ввода, содержит этот рисунок, который показывает фрейм с 3 окнами и показывает строку меню для текущего буфера и строки режима окон. Эти 3 буферы , показанные в окнах названы *Help*, drews-lisp-20и shrink-fit.el.

Emacs рама, окна и детали окон

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

Нарисовался
источник
1
+1 Указание читателей на глоссарии и руководство по Emacs - правильный ответ на такие стандартные ответы, чтобы не вводить в заблуждение новых пользователей.
Emacs User