vim :让VIM自动打开上次编辑过的文件

让VIM自动打开上次编辑过的文件

(2011-12-07 19:22:41)

转载

标签:

it

 

我自己写的vim脚本,把它加进你的VIMRC文件就行
要看完哦,不然有麻烦的...
""""""""""""""""""""""""""""""""""""""""""
au VimLeave * mks! Session.vim
"关闭VIM时自动建立一个Sessio.vim文件,内部保存了编辑时具有的所有的状态!
"echo findfile("Session.vim"),它的回显是一个文件名,所以下面才这样写!
"% 表示本文件名,若有文件名就不加载了
" expand 用来展开专用字符串
if expand("%")==""
    if("Session.vim"==findfile("Session.vim"))
         silent :source Session.vim "不直接source session.vim!否则有一个提示窗口
    endif
endif      
"以上写法在GVIM启动时没有提示窗口
""""""""""""""""""""""""""""""""""""""""""""""
这个写法不能让VIM同时记住多个编辑过的文件,要让VIM具用文件历史记录功能,还得下载新的脚本....

如果加入这段脚本,你会发现Session.vim遍地开花!
由于我VIMRC内有 lcd C:\  这项,所以我的Session.vim只自动保存在C:\下
改进:
"""""""""""""""""""""""""""""""""""""""""
" ~ 表示HOME目录!没有话就......
"findfile()会展开~ ,普通字符串不会自动展开!
au VimLeave * mks! ~/Session.vim
if expand("%")==""
    if(expand("~/Session.vim")==findfile("~/Session.vim"))
         silent :source ~/Session.vim
    endif
endif        
""""""""""""""""""""""""""""""""""""""""""""""""""
也许这样不方便,在WINDOWS下通常没有HOME目录,但是TMP/TEMP总有吧,
也可以这样写:
""""""""""""""""""""""""""""""""""""""""""""""
au VimLeave * mks! $TMP/Session.vim
let g:AA=expand("$TMP/Session.vim")
if expand("%")==""
    if(expand("$TMP/Session.vim")==findfile(g:AA))
         silent :source $TMP/Session.vim
    endif
endif
"""""""""""""""""""""""""""""""""""""""""""""""
findfile("$TMP/Session.vim"))这个不能正确展开路径...why?
findfile(expand("$TMP/Session.vim"))这个好像可以正确展开路径.....
所以设置了一个全局变量AA,
(提示,在脚本中我用echo findfile("...")来测试返回结果
这是改后的:
"""""""""""""""""""""""""""""""""""""""""""""""""""
au VimLeave * mks! $TMP/Session.vim
if expand("%")==""
    if(expand("$TMP/Session.vim")==findfile(expand("$TMP/Session.vim")))
         silent :source $TMP/Session.vim
    endif
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""

保存在HOME目录下,关机下次还有,在TMP目录下就不一定了
大家有好的想法一定要留言呀

猜你喜欢

转载自blog.csdn.net/hunter___/article/details/81748867
Vim