0

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

当启动不带参数的 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没有成功。

删除允许使用 glob() 进行查找,但.swp不能...wildignoretest.swp.task.otl.swp

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

4

1 回答 1

1

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

我只是设法使用正确的行为

:set wildignore-= .*
于 2013-04-12T12:02:43.517 回答