emacs启动的过程

    xiaoxiao2023-02-01  21

    解释执行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

    转载请注明原文地址: https://ju.6miu.com/read-1138566.html
    最新回复(0)