emacs中框架和窗口之间的差异

时间:2012-04-25 03:49:15

标签: emacs

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

所以我有这个问题,窗口和框架之间的区别是什么?

我的理解是:

  1. 你可以按'q'退出一个框架而不是一个窗口。
  2. 框架由一系列窗口组成
  3. 框架将包含所有缓冲区的子集。
  4. 框架更像是项目的概念,而窗口是每个文件的。
  5. 3和4看似不正确,因为当我尝试在帧之间跳转时,我仍然看到了所有的缓冲区。

    我的理解是否正确?或者我没有以正确的方式做到这一点?

    是否有类似于EMACS的函数的项目将缓冲区组织到不同的项目中,因此当我在缓冲区之间跳转时,我只看到缓冲区本地化到该项目?

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

1 个答案:

答案 0 :(得分:20)

这有点令人困惑,但这都归功于历史。在GUI常见之前,Emacs最初是在text terminals时代创建的。你所拥有的只是等宽文本行,通常是大约80列乘24行。 Emacs能够将屏幕分成多个窗口,因此您可以同时看到多个文件。

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

因此,当Emacs谈到“框架”时,它意味着其他程序称之为“窗口”的东西。在Emacs中,帧基本上是终端仿真器,可以根据需要调整大小。每个框架的行为非常类似于在文本终端中运行的Emacs;框架可以包含一个或多个旧式Emacs窗口。

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

您可以在the chapter of the Emacs manual on "Frames"中找到更多详情。

所以你的(3)不正确;每个帧都有可用的缓冲区。 (4)也不是真的正确;这取决于你想要使用多少帧和/或窗口。就个人而言,我通常使用1帧,1或2个窗口。如果我想在处理1或2个其他文件时需要更多空间来显示一个文件,我偶尔会使用第二帧。