您的位置:首页 > 其它

emacs启动的过程

2016-09-17 18:43 190 查看
解释执行subdirs.el (emacs安装时自动生成),将list里的内容添加到load-path中

解释执行lemi-list.el(load-path中找到)主要是注册输入法

设置before-init-time为current-time, 设置after-init-time为nil表示正在初始化emacs

根据环境变量LANG等设置语言环境和终端编码

解析命令行参数

如果没有指定–batch的话,初始化窗口系统用于后面创建frame; 由initial-window-system指定所用的系统,初始化的函数则由window-system-initialization-alist指定

运行钩子before-init-hook

如果没有指定–batch或–daemon命令选项,创建frame

执行一些frame相关的设置

使用custom-reevaluate-setting重新初始化custom-delayed-init-variables的所有成员

如果没有指定-Q或–no-site-file命令选项就加载site-start库文件

加载init file, 如果指定-q或-Q或–batch选项则跳过

加载default.el库文件, inhibit-default-init非空,或者指定了-q或-Q或–batch则跳过

加载abbrev-file-name指定的文件, 如果指定–batch选项则跳过

如果package-enable-at-startup为真,调用package-initialize激活lisp packages

设置after-init-time为current-time,表示emacs初始化完成; after-init-time与before-init-time之间的差即为emacs初始化消耗的时间

执行钩子after-init-hook

根据initial-major-mode的值设置*scratch*的主模式

如果是文本终端则加载终端相关的库文件,然后执行钩子tty-setup-hook, 如果指定–batch或term-file-prefix为空则跳过

如果没有设置inhibit-startup-echo-area-message,则显示回显区域初始信息

处理之前没有处理完的命令行相关的选项

如果指定–batch选项则退出emacs

执行initial-buffer-choice,如果*scratch*内容为空,则插入initial-scratch-message

执行钩子emacs-startup-hook

调用frame-notice-user-settings修改选定frame的参数

执行钩子window-setup-hook

显示启动界面,可以通过设置inhibit-startup-screen为真,或initial-buffer-choice为真或–no-splash或-Q选项跳过

如果指定–daemon选项,调用server-start并脱离控制终端

如果在x视窗下启动emacs,以之前的seesion id作为参数调用emacs-session-restore

原文地址:

https://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  emacs