2

我在两台计算机上使用 emacs 23。在两者上,dpkg -s emacs输出以下版本号。然而,一个有window.el,另一个没有。这使某些功能(例如)split-window表现不同。显然没有window.el安装此功能的电脑上的帮助页面显示,它来自于C source code

这种差异从何而来?

我更喜欢说split-window来自的行为window.el:它允许在拆分窗口时指定 SIDE 并提供附加功能,例如window-resize. 我想这是最新的,但我不知道如何检查它,也不知道如何将另一个升级到这个状态。

4

2 回答 2

3

图书馆window.el和山一样古老。也许您的意思是您的 Emacs 安装之一有window.elc但没有window.el

更有可能的是,您仅指的是 function split-window。是的,它曾经是一个内置函数(即,在 C 中定义),现在它被定义在window.el(对于该函数是内置函数的旧 Emacs 版本也存在该文件)。

split-window仅供参考,很多窗口和缓冲区显示的东西在用 Lisp 重写的同时发生了变化。许多行为以次要或主要方式发生了变化。

完全不清楚的是您报告的问题是什么。你问:“这种差异从何而来?如何解决?” 我已经解释了一些差异。至于如何修复它——需要修复的“它”是什么,固定的行为会是什么样子?

IOW,到目前为止,您的问题是无法回答的。如果您更准确地指定事情,也许我们可以提供更多帮助。

于 2013-11-05T21:09:26.327 回答
1

我不确定你的 debian 包发生了什么,但如果内存为可读的 .el(.gz) 文件提供服务,则基本包中没有提供,而是在单独的包中提供。这是因为您只需要字节编译的 .elc 文件,因此它们可以通过省略它们来减小基本包文件的大小(以使您能够阅读 elisp 代码为代价)。

M-x load-library RET window RET成功了吗?

请注意,Emacs 24 是当前的稳定版本。您可能想要升级。

编辑:

M-x emacs-version告诉你你正在运行哪个版本的 Emacs,它总是会给你一个明确的答案。

(如果版本相同,则运行emacs -Q以消除图片中特定于站点和用户的配置文件,因为这些总是可能导致不同行为的罪魁祸首。)

于 2013-11-05T20:52:48.987 回答