这是我的~/.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()
函数中。