这是我的〜/ .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
但它仍然不起作用。
答案 0 :(得分:1)
检查argc()
确实是可行的方法。参数传递时,您可以跳过执行ReadSession()
:
autocmd VimEnter * if argc() == 0 | call ReadSession() | endif
或者将条件放入ReadSession()
函数。