vim 配置文件加载顺序笔记

最新代码: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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值