vim 配置文件加载顺序笔记
2017-03-18 19:46
351 查看
最新代码:git clone https://github.com/vim/vim.git
1. VIM执行入口 src/main.c,source_startup_scripts()执行初始化。
/*
* Try to read initialization commands from the following places:
* - environment variable VIMINIT
* - user vimrc file (s:.vimrc for Amiga, ~/.vimrc otherwise)
* - second user vimrc file ($VIM/.vimrc for Dos)
* - environment variable EXINIT
* - user exrc file (s:.exrc for Amiga, ~/.exrc otherwise)
* - second user exrc file ($VIM/.exrc for Dos)
* The first that exists is used, the rest is ignored.
*/
if (process_env((char_u *)"VIMINIT", TRUE) != OK)
{
if (do_source((char_u *)USR_VIMRC_FILE, TRUE, DOSO_VIMRC) == FAIL
#ifdef USR_VIMRC_FILE2
&& do_source((char_u *)USR_VIMRC_FILE2, TRUE,
DOSO_VIMRC) == FAIL
#endif
#ifdef USR_VIMRC_FILE3
&& do_source((char_u *)USR_VIMRC_FILE3, TRUE,
DOSO_VIMRC) == FAIL
#endif
#ifdef USR_VIMRC_FILE4
&& do_source((char_u *)USR_VIMRC_FILE4, TRUE,
DOSO_VIMRC) == FAIL
#endif
&& process_env((char_u *)"EXINIT", FALSE) == FAIL
&& do_source((char_u *)USR_EXRC_FILE, FALSE, DOSO_NONE) == FAIL
#ifdef USR_EXRC_FILE2
&& do_source((char_u *)USR_EXRC_FILE2, FALSE, DOSO_NONE) == FAIL
#endif
&& !has_dash_c_arg)
{
/* When no .vimrc file was found: source defaults.vim. */
do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE);
}
}
2. Autoload
/*
* Return the autoload script name for a function or variable name.
* Returns NULL when out of memory.
*/
char_u *
autoload_name(char_u *name)
{
char_u *p;
char_u *scriptname;
/* Get the script file name: replace '#' with '/', append ".vim". */
scriptname = alloc((unsigned)(STRLEN(name) + 14));
if (scriptname == NULL)
return FALSE;
STRCPY(scriptname, "autoload/");
STRCAT(scriptname, name);
*vim_strrchr(scriptname, AUTOLOAD_CHAR) = NUL;
STRCAT(scriptname, ".vim");
while ((p = vim_strchr(scriptname, AUTOLOAD_CHAR)) != NULL)
*p = '/';
return scriptname;
}
3. 参考starting.txt文档,help initialization 或者 help startup。
1. VIM执行入口 src/main.c,source_startup_scripts()执行初始化。
/*
* Try to read initialization commands from the following places:
* - environment variable VIMINIT
* - user vimrc file (s:.vimrc for Amiga, ~/.vimrc otherwise)
* - second user vimrc file ($VIM/.vimrc for Dos)
* - environment variable EXINIT
* - user exrc file (s:.exrc for Amiga, ~/.exrc otherwise)
* - second user exrc file ($VIM/.exrc for Dos)
* The first that exists is used, the rest is ignored.
*/
if (process_env((char_u *)"VIMINIT", TRUE) != OK)
{
if (do_source((char_u *)USR_VIMRC_FILE, TRUE, DOSO_VIMRC) == FAIL
#ifdef USR_VIMRC_FILE2
&& do_source((char_u *)USR_VIMRC_FILE2, TRUE,
DOSO_VIMRC) == FAIL
#endif
#ifdef USR_VIMRC_FILE3
&& do_source((char_u *)USR_VIMRC_FILE3, TRUE,
DOSO_VIMRC) == FAIL
#endif
#ifdef USR_VIMRC_FILE4
&& do_source((char_u *)USR_VIMRC_FILE4, TRUE,
DOSO_VIMRC) == FAIL
#endif
&& process_env((char_u *)"EXINIT", FALSE) == FAIL
&& do_source((char_u *)USR_EXRC_FILE, FALSE, DOSO_NONE) == FAIL
#ifdef USR_EXRC_FILE2
&& do_source((char_u *)USR_EXRC_FILE2, FALSE, DOSO_NONE) == FAIL
#endif
&& !has_dash_c_arg)
{
/* When no .vimrc file was found: source defaults.vim. */
do_source((char_u *)VIM_DEFAULTS_FILE, FALSE, DOSO_NONE);
}
}
2. Autoload
/*
* Return the autoload script name for a function or variable name.
* Returns NULL when out of memory.
*/
char_u *
autoload_name(char_u *name)
{
char_u *p;
char_u *scriptname;
/* Get the script file name: replace '#' with '/', append ".vim". */
scriptname = alloc((unsigned)(STRLEN(name) + 14));
if (scriptname == NULL)
return FALSE;
STRCPY(scriptname, "autoload/");
STRCAT(scriptname, name);
*vim_strrchr(scriptname, AUTOLOAD_CHAR) = NUL;
STRCAT(scriptname, ".vim");
while ((p = vim_strchr(scriptname, AUTOLOAD_CHAR)) != NULL)
*p = '/';
return scriptname;
}
3. 参考starting.txt文档,help initialization 或者 help startup。
相关文章推荐
- 文件模式Vim配置文件种类,加载顺序,基本配置
- Struts2加载配置文件时的顺序
- Struts2常量配置文件加载顺序
- web.xml文件中配置( listenr, filter,servlet, spring)的加载顺序 研究(转)
- Struts2加载配置文件的顺序问题
- 【转】VIM学习笔记 配置文件(…
- RHCE课程-RH033Linux基础笔记六之编辑工具VIM、网络配置、进程优先、日志文件简介(上)
- Vim笔记 ==== .vimrc文件配置,常用插件
- RHCE课程-RH033Linux基础笔记六之编辑工具VIM、网络配置、进程优先、日志文件简介
- 关于JSP配置文件web.xml加载顺序详解
- tomcat启动或,struts2需要加载哪些配置文件,加载顺序
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序研究
- web.xml 文件中一般包括 servlet, spring, filter, listenr的配置。那么他们是按照一个什么顺序加载呢?
- poco库学习笔记(3) 加载配置文件
- Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序
- RHCE课程-RH033Linux基础笔记六之编辑工具VIM、网络配置、进程优先、日志文件简介 推荐
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序
- web.xml 文件 配置加载顺序
- [Log4j] Log4j 的配置和配置文件加载顺序
- 验证bash的配置文件加载顺序