我在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中测试交换文件的存在?其他解决方案也欢迎。
答案 0 :(得分:1)
wildignore也会忽略以.
开头的文件。
我只是设法使用
获得了正确的行为:set wildignore-= .*