如何在.vimrc中检查交换文件的存在?

时间:2013-04-12 08:28:14

标签: vim

我在Windows的主目录中有一个task.otl,这是一种使用vim-outliner格式的Todo列表。

在没有参数的情况下启动gvim时,我会自动加载它。但是,我想只打开一次。所以我想在我的.vimrc检查交换文件是否存在,然后再在新会话中打开它。

无论我做什么,

 :echo filereadable(expand("$HOME/task.otl"))

始终正确返回1。它也适用于我的主目录中的其他文件。

但是,如果我尝试,

 :echo filereadable(expand("$HOME/.task.otl.swp"))

它始终返回0。 (即使文件存在于目录中)

为了完整起见,我还尝试了glob()

:echo glob(expand("$HOME/task.otl"))

返回完整路径

:echo glob(expand("$HOME/.task.otl.swp"))

返回一个空字符串......

进一步测试:找不到test.swp&找到test.fwp。所以这是一个扩展问题。

我尝试set suffixes -= .swp但没有成功。

.swp移除wildignore可以找到带有glob()但不是test.swp的{​​{1}} ...

所以我的问题是如何在Vimscript中测试交换文件的存在?其他解决方案也欢迎。

1 个答案:

答案 0 :(得分:1)

wildignore也会忽略以.开头的文件。

我只是设法使用

获得了正确的行为
:set wildignore-= .*
相关问题