0 引言
理解vim的启动过程对于增强使用vim的信心非常重要,本文所有的信息均来自vim自身提供的参考手册和作者实际操作实践。VIM REFERENCE MANUAL的Starting Vim这节详细描述了vim的启动过程。vim完整的启动过程非常复杂,因为要兼容不同的平台,不同的运行模式。本文只考虑Windows, Mac OS X, Linux平台上最常见的启动流程。
1 vim启动初始化流程
(1)设置内部变量shell和term
vim根据环境变量$SHELL和$TERM设置这两个内部变量(option).
(2)处理命令行参数
命令行参数包括选项和要打开的文件名,vim为每一个文件开辟内存空间。
(3)加载系统级别和用户级别的配置文件
(a) 根据编译时指定的路径,加载系统级别vimrc配置文件
(b) 根据编译时指定的路径或默认路径,加载用户级别的vimrc配置文件
(4)加载插件文件
根据runtimepath内部变量的值加载。所有runtimepath中的所有目录下名为plugin的子目录们下面所有以.vim结尾的文件都会被加载执行。
(5)设置shellpipe和shellredir内部变量
(6)如果命令行参数有-n,则设置updatecount内部变量
(7)如果命令行参数有-b,则设置二进制相关的多个内部变量
(8)执行GUI部分的初始化
(9)如果viminfo不为空,则读取指定的viminfo文件,恢复上次的编辑环境
(10)如果命令行参数有-q,则读取quickfix文件
(11)打开显示所有的窗口
(12)执行用户指定的启动时命令
可以看出,vim的启动初始化流程非常复杂。本文我们只关心配置文件的加载部分,这也是与大多数vim使用者直接相关的部分。从上面的流程看出ÿ