我最近一直在定制我的.
vimrc并且喜欢mksession给我的力量和便利.我目前在.vimrc中有以下自动加载会话:
function! LoadSession() if argc() == 0 && ! &diff let g:sessiondir = $HOME . "/.vim/sessions" . getcwd() let g:sessionfile = g:sessiondir . "/session.vim" if (filereadable(g:sessionfile)) exe 'source ' g:sessionfile else echo "No session loaded." + argc() + argv() endif else let g:sessionfile = "" let g:sessiondir = "" call ResCur() endif endfunction
然后我用au VimEnter *嵌套调用它:调用LoadSession().这适用于大多数情况,除非vim从stdin读取.在这种情况下,会话仍然被加载,但我想防止这种情况发生.我本以为argc()== 0条件就足够了,但看起来 – 从vdin读取的vim会导致argc()不返回0. Poop! ]
我已经尝试了各种各样的东西,从查看argv(0)(在这种情况下它是空的 – 为什么?),试图找到识别vim从stdin读取的方法(它显示了一条消息,它正在这样做,但我无法弄清楚如何进入那个)等,但到目前为止没有运气.
我确定我在这里遗漏了一些非常明显的东西,但谷歌和vim:帮助并没有把我带到任何地方,所以我希望这里有一些善良的灵魂可以为我揭示这一点.
解决方法
我正在使用的
session.vim plugin提供了扩展的会话处理.其中,它询问是否应该在Vim启动时恢复以前保存的会话.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。