11

我刚开始使用EMACS,太棒了。

所以我有这个问题,窗户和框架有什么区别?

我的理解是:

  1. 您可以按“q”退出框架而不是窗口。
  2. 框架由一系列窗口组成
  3. frame 将包含所有缓冲区的子集。
  4. 框架更像是项目的概念,而窗口是每个文件的概念。

3 和 4 似乎不正确,因为当我尝试在帧之间跳转时,我仍然看到所有缓冲区。

那么我的理解正确吗?或者我没有以正确的方式做这件事?

EMACS 是否有类似项目的功能来将缓冲区组织到不同的项目中,这样当我在缓冲区之间跳转时,我只看到缓冲区本地化到该项目?

有人可以多谈谈EMAC中与框架和窗口相关的项目概念吗?

4

1 回答 1

20

这有点令人困惑,但这都是历史造成的。Emacs 最早是在文本终端时代创建的,那时 GUI 还很普遍。您所拥有的只是等宽文本行,通常大约 80 列乘 24 行。Emacs 能够将屏幕分割成多个窗口,因此您可以一次看到多个文件。

然后图形终端和图形用户界面出现了,“窗口”开始意味着图形用户界面的种类。但是 Emacs 有几十个函数和变量,它们的名字中都带有“window”,它们处理了它的分屏类型的窗口。重命名这些函数会破坏所有使用它们的 Emacs Lisp 代码。因此,当 Emacs 获得 GUI 界面时,其设计者决定更容易想出一个新术语来表示“GUI 窗口”,而将“窗口”保留为“旧式 Emacs 窗口”。他们提出的新术语是“框架”(因为框架是围绕窗户的东西)。

因此,当 Emacs 谈到“框架”时,它的含义与其他程序称为“窗口”的含义相同。在 Emacs 中,框架基本上是一个终端仿真器,可以根据需要调整大小。每个框架的行为都非常像在文本终端中运行的 Emacs;框架可以包含一个或多个旧式 Emacs 窗口。

但是,单个 Emacs 进程的所有帧都是链接的。任何缓冲区都可以显示在任何帧的任何窗口中,并且您可以同时在多个窗口和/或帧中显示相同的缓冲区。

您可以在 Emacs 手册的“框架”一章中找到更多详细信息。

So your (3) is not correct; every buffer is available in every frame. (4) is not really correct either; it's up to you how many frames and/or windows you want to use. Personally, I normally use 1 frame with 1 or 2 windows. I occasionally use a second frame if I want more space to display one file while working on 1 or 2 other files.

于 2012-04-25T05:37:24.783 回答