当我在没有参数的情况下启动vim时,只有自动重新加载会话



这是我的~/.virc文件的一部分:

autocmd VimEnter * : call ReadSession()
autocmd VimLeave * : call SaveSession()
function SaveSession()
    execute 'mksession! ' . getcwd() . '/.session.vim'
endfunction
function ReadSession()
    let session_file = getcwd() . "/.session.vim"
    if filereadable( session_file )
        execute "so " . session_file
        if bufexists(1)
            for l in range(1, bufnr('$'))
                if bufwinnr(l) == -1
                    exec 'sbuffer ' . l
                endif
            endfor
        endif
    endif
endfunction

因此,即使我不希望它重新加载会话,它也会重新加载
例如,我在一个我曾经工作过的目录中调用"vim1.cpp"(编辑2.cpp),然后它会首先显示2.cpp
我可以修改.virc吗?这样,如果我将参数传递给vim,它就不会读取会话文件?谢谢

编辑:
我添加了一行

if (argc() > 0)
    exec 'bfirst'
endif

但它仍然不起作用。

检查argc()确实是一种方法。传递参数时,可以跳过ReadSession()的执行:

autocmd VimEnter * if argc() == 0 | call ReadSession() | endif

或者将条件放入ReadSession()函数中。

最新更新