emacs启动的过程

  1. 解释执行subdirs.el (emacs安装时自动生成),将list里的内容添加到load-path中
  2. 解释执行lemi-list.el(load-path中找到)主要是注册输入法
  3. 设置before-init-time为current-time, 设置after-init-time为nil表示正在初始化emacs
  4. 根据环境变量LANG等设置语言环境和终端编码
  5. 解析命令行参数
  6. 如果没有指定–batch的话,初始化窗口系统用于后面创建frame; 由initial-window-system指定所用的系统,初始化的函数则由window-system-initialization-alist指定
  7. 运行钩子before-init-hook
  8. 如果没有指定–batch或–daemon命令选项,创建frame
  9. 执行一些frame相关的设置
  10. 使用custom-reevaluate-setting重新初始化custom-delayed-init-variables的所有成员
  11. 如果没有指定-Q或–no-site-file命令选项就加载site-start库文件
  12. 加载init file, 如果指定-q或-Q或–batch选项则跳过
  13. 加载default.el库文件, inhibit-default-init非空,或者指定了-q或-Q或–batch则跳过
  14. 加载abbrev-file-name指定的文件, 如果指定–batch选项则跳过
  15. 如果package-enable-at-startup为真,调用package-initialize激活lisp packages
  16. 设置after-init-time为current-time,表示emacs初始化完成; after-init-time与before-init-time之间的差即为emacs初始化消耗的时间
  17. 执行钩子after-init-hook
  18. 根据initial-major-mode的值设置*scratch*的主模式
  19. 如果是文本终端则加载终端相关的库文件,然后执行钩子tty-setup-hook, 如果指定–batch或term-file-prefix为空则跳过
  20. 如果没有设置inhibit-startup-echo-area-message,则显示回显区域初始信息
  21. 处理之前没有处理完的命令行相关的选项
  22. 如果指定–batch选项则退出emacs
  23. 执行initial-buffer-choice,如果*scratch*内容为空,则插入initial-scratch-message
  24. 执行钩子emacs-startup-hook
  25. 调用frame-notice-user-settings修改选定frame的参数
  26. 执行钩子window-setup-hook
  27. 显示启动界面,可以通过设置inhibit-startup-screen为真,或initial-buffer-choice为真或–no-splash或-Q选项跳过
  28. 如果指定–daemon选项,调用server-start并脱离控制终端
  29. 如果在x视窗下启动emacs,以之前的seesion id作为参数调用emacs-session-restore

原文地址:
https://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值