Questions tagged «start-up»

关于启动和初始化Emacs会话

3
我怎样做才能加快启动速度?
我可以做些基本的事情来减少启动时间? 就此而言,我是否需要特别注意什么? 注意:可以通过减少启动Emacs的频率(每次会话一次)并在正在运行的实例中打开文件来减少启动时间。这个问题是关于最小化启动时间,会话启动或需要启动Emacs的任何其他时间。 另请参见在Stack Overflow上回答的同一问题,问答得分超过50和30多个“收藏夹”书签。好的答案应该超出Stack Overflow的可用范围。

2
package-initialize:错误的类型参数:arrayp,nil
在通过emacs作为ac / c ++编辑器进行操作时,我遇到了以下几行代码,它们包含在我的~/.emacs文件中,以进行连接以 melpa archives进行软件包安装 (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) 将这些行保存到emacs中之后,当我启动emacs时wrong type argument: arrayp, nil,在minibuffer区域中显示了一个 当我尝试时$ emacs --debug -init,我得到了: Debugger entered--Lisp error: (wrong-type-argument arrayp nil) package--add-to-archive-contents(nil "melpa") package-read-archive-contents("melpa") package-read-all-archive-contents() package-initialize() eval-buffer(#<buffer *load*> nil "/home/anupam/.emacs" nil t) ; Reading at buffer position 905 load-with-code-conversion("/home/anupam/.emacs" "/home/anupam/.emacs" t t) …
29 package  start-up 

2
尽管有很多软件包,如何改善启动时间?
TL; DR我的软件包太多,以至于影响了我的启动时间。如果您不相信这种情况,请继续阅读。 我的Emacs启动时间非常短。我不使用use-package,我只是设置了很多钩子和autoloads,所以几乎所有代码都被推迟了。实际上,整个过程加载起来通常不到半秒,尽管看上去好像一团糟。 然而,随着时间的推移,我发现我的启动时间变细慢,令人费解。最终达到启动时间≥1秒的程度。我终于受够了,我深入探究了问题的根源。我最终注释掉了我的整个~/.emacs文件,发现启动时间仍然 ≥1秒。实际上,它只减少了大约0.2几秒钟,有时甚至更少。然后,我尝试emacs -q发现启动时间为〜0.1秒。 通过阅读Elisp手册的这一部分,我发现了为什么要这么emacs -q减少启动时间。显然emacs -q阻止了Emacs在启动时做三件事: 加载您的初始化文件 加载default.el文件 呼唤 package-initialize 我们已经排除了我的init文件,因为注释掉我的整个文件~/.emacs几乎没有任何作用。我不使用default.el文件,因此也排除了该文件。这package-initialize是造成性能下降的罪魁祸首。 为什么package-initialize要占用这么多启动时间?那是我问自己的第一个问题。我不是自动加载所有内容吗?嗯,是。但是,这恰恰是问题。 我发现这篇文章解释了“激活”软件包包括读取自动加载文件和设置加载路径。当您有许多软件包时,这显然会导致I / O损失,因为您有许多要读取的自动加载文件和许多设置路径。不幸的是,没有这个,管理自动加载的任务就落在用户手中。换句话说,在不让package.el爬网文件系统自动加载文件和路径的情况下,我必须亲自管理该过程,这可能是一个乏味且容易出错的过程。 我宁愿不走那条路。我目前有116个软件包,其中有107个来自ELPA,其中25个是依赖项。我确信这个惊人的数字是对我的表现造成如此严重的影响。但是我很困惑,因为我不想删除任何软件包。 在这种情况下是否有任何补救措施可以使我的闪电启动时间恢复原状? 更新: 我们已经开始了一个新的线程上emacs-devel关于邮件列表的一些 补丁由斯特凡Monnier的(这些补丁的描述是这里)来解决这个问题。欢迎任何人测试他的补丁并提供反馈。 另一个更新: 似乎Stefan Monnier对这个问题不再感兴趣,或者他没有收到我的消息。我倾向于相信前者,这很好,尽管在这种情况下,我将感谢他的某种回应。无论如何,到目前为止,他为该问题编写的代码都运行良好。他的最新补丁可以在此处(对于Emacs 25.3)和此处(对于Emacs master分支)找到。由于有了他的补丁程序,我在启动时间上看到了很好的改进,并且我对启动时间感到满意,因为它在不减少自定义功能的情况下尽可能地得到了优化。我希望这些修补程序能够在某个时候进入Emacs主线,但我想我(或其他人)现在必须为此承担火炬,而不是Stefan。在邮件列表中,我们有些关于版权转让和许可的问题。最初,我对此感到不舒服,但是由于理查德·斯托曼(Richard Stallman)和其他人的一些评论,版权分配可能没有我最初想象的那么严格。此外,我可能有可能将我的作品提交到公共领域,以替代版权转让。 无论如何,感谢Stefan到目前为止的补丁!我希望您会继续开发这些更改,但是如果没有,那就可以了,我可能会在某个时候继续开发它。我还要感谢其他所有为解决此问题提供见识和贡献的人。 另一个更新: 哇,该功能终于登陆了,将在Emacs 27中使用。感谢Stefan Monnier!

3
用最近的清单替换启动画面
初始屏幕在开始时很有用,但现在我想要更有用的东西:如果没有要打开的预定义文件,我想在启动emacs时显示最近打开的文件的列表。更好的是,如果它可以是helm-recentf窗口(我使用helm包)
18 start-up  recentf 

1
将gc-cons-threshold设置得很高并在闲置时收集垃圾有任何不利之处吗?
我在我的顶部添加了以下两行init.el: (setq gc-cons-threshold (eval-when-compile (* 1024 1024 1024))) (run-with-idle-timer 2 t (lambda () (garbage-collect))) 这意味着Emacs不会在闲置时(即当暂停不打扰我时)这样做,而不是每分配800KB的内存收集垃圾。(它还会在分配1GB内存后收集,但我认为不会发生这种情况)。 这将我的启动时间缩短了大约三分之二。从理论上讲,它还应该总体上提高性能。这种方法有不利之处吗?

2
为什么在Windows上启动Emacs比在Linux上启动需要更长的时间?
组态: 一个系统 OS Windows 10双启动 操作系统Ubuntu 15.10作为双启动 具有GUI的Emacs 25.0.1 我的dot-emacs文件.emacs.d夹中有一个文件,所有内容(这些包也位于中.emacs.d)。所有这些文件都位于一个Dropbox文件夹中。 在Windows 10上:我将Windows中的home文件夹中的dot-emacs和链接.emacs.d到Dropbox中的位置。 在Linux / Ubuntu 15.10上:我也将dot-emacs和链接到.emacs.d了我的Ubuntu主文件夹(/ home / user /)到Dropbox中的位置。 因此,与Emacs相关的所有文件都存储在跨各种操作系统的一个Dropbox文件夹中。 Windows和Linux在同一磁盘上以双重引导的方式运行,因此在相同的硬件上也是如此。 当我在Windows上启动Emacs时,需要7.4秒才能启动。 当我在Linux上启动Emacs时,仅需2.3秒即可启动。 带有图形GUI的Emacs和版本25.0.1都可以使用。两种操作系统都位于同一SSD驱动器上的同一台计算机上。因此它也是相同的硬件。 在操作系统(Windows 10和Ubuntu 15.10)上,以下内容相同: Emacs软件25.0.1版 配置文件(.emacs.d) 一个硬盘(.emacs.d中的所有文件)和两个OS都在同一SSD上。 硬件 区别之一: Windows或Linux的编译Emacs分别在Windows或Linux平台上运行。那是唯一的区别。 我在努力理解为什么Emacs在Ubuntu上的启动时间比Windows短得多。
14 start-up 

3
Emacs如何设法立即启动许多el文件?
每个Emacs'er都会知道,我目前正遭受广泛的dot-Emacs配置困扰。我所有的软件包都在的容器内use-package,并且我对所有-files进行了.el字节编译。即使这样,Emacs也会在6.4秒内启动,然后再加载其余的软件包(其中约40个)。 我在考虑解决启动时间过长的另一种方法,然后我发现了一些问题。默认的Emacs(无用户配置)使用许多.el库,每个Emacs都包含这些库。它们位于中\shares\emacs\version number\lisp\。 即使有许多Lisp文件,它也可以在一秒钟内开始使用。当我检查默认Emacs随附的许多软件包的文件时,没有发现任何异常现象可以解释为什么Emacs设法在一秒钟内启动。谁能告诉我Emacs如何管理该文件(即使有数千个.el文件)?
11 start-up 

1
Emacs桌面保存模式-仅在完全还原以前的桌面时保存桌面
我的内容如下.emacs: (desktop-save-mode 1) (setq desktop-restore-eager 10) (setq desktop-save t) 通常,我会打开很多缓冲区(大约100个),这确实有帮助-因为emacs仅在不忙于其他事务时才加载缓冲区。 现在,有时会发生以下情况:在关闭笔记本电脑之前,我关闭了emacs。然后我意识到-我需要快速编辑另一个文件-因此我再次打开emacs,执行编辑,然后将其关闭。如果这是在短时间内发生的,则desktop-save-mode无法还原所有先前保存的缓冲区。在这种情况下,当我现在再次关闭emacs时,仅保存已还原的缓冲区,并且丢失初始关闭之前的状态。 desktop-save如果先前保存的桌面已完全还原,是否有办法做到这一点?
11 start-up  desktop 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.