如何解决我如何告诉 Vim 使用适合文件路径通配符 glob 的任何/所有字典文件?
我正在尝试在文件名 glob 中使用通配符设置字典选项(以允许自动完成我选择的某些单词),如下所示:
:set dict+=$VIM/dict/dict*.lst
希望是,通过最初来源的 .vimrc(或者,在我的 Windows 10 的情况下,_vimrc)中的这一行,我可以稍后将不同的字典文件添加到我的 $VIM/dict 目录中,并且每次新调用Vim 将使用这些字典文件,而无需我修改我的 .vimrc 设置。
但是,一条错误消息说没有这样的文件。当我给出一个特定的文件名(如 :set dict+=$VIM/dict/dict01.lst
)时,它就起作用了。
问题是,我可以发誓这曾经奏效。自从我开始使用 Vim 7.1 以来,我的 .vimrc 文件中就有这个设置,直到最近我才想起任何这样的错误消息。现在它出现在我的 Linux 笔记本电脑以及我的 Windows 7 和 Windows 10 笔记本电脑上。我不记得这到底是什么时候开始发生的。
是的,我尝试使用反斜杠(如在 :set dict+=$VIM\dict\dict*.lst
中)以防它是 Windows 兼容性问题,但这仍然不起作用。 (这也发生在我的 Linux 笔记本电脑上,而且文件路径不使用反斜杠。)
我会变老吗?还是有其他神秘力量在起作用?
假设现在是最新版本的 Vim 的变化,有没有办法指定“使用适合这个 glob 的所有字典文件”?
-- 编辑于 2021-02-14 06:17:07
我还检查了是否是因为有多个文件符合通配符 glob。 (我以为如果我有多个适合通配符的文件,glob 会变成两个文件名,相当于说 dict+=$VIM/dict/dict01.lst dict02.lst
这在语法上是无效的。)但是在删除额外的文件后它仍然不起作用这样只有一个文件适合我的 $VIM/dict/dict*.lst 路径名。 (我之前曾在这里放了另一个附录,很高兴地解释说这是我解决问题的方法,但结果为时过早。)
解决方法
您必须在设置选项之前扩展通配符。多个文件名必须用逗号分隔。例如,
let &dictionary = tr(expand("$VIM/dict/dict*.lst"),"\n",",")
如果向非空选项添加值,也不要忘记添加逗号(let
比 set
更通用,因此更不宽容):
let &dictionary .= "," . tr(expand(...)...)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。