当我启动没有参数的vim时,只有自动重载会话

时间:2013-12-10 14:11:27

标签: vim

这是我的〜/ .vimrc文件的一部分:

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

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

EDITING:
我添加了一行

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

但它仍然不起作用。

1 个答案:

答案 0 :(得分:1)

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

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

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