使用vim,如何将autocmd用于特定路径的子目录中的文件?

Ren*_*ger 17 vim

我试图找出如何定义影响特定路径下所有文件的autocmd.

我试过的autocmd是这样的

autocmd BufNewFile,BufRead /specificPath/** imap <buffer> ....
Run Code Online (Sandbox Code Playgroud)

现在,如果我编辑了/foo/bar/specificPath/baz/something/bla.txt,我希望使用这个autocmd,但如果我编辑了/ foo/bar/here /和/ there/moreBla则不行.文本

如果我开始将vim放在特定路径"上面"的目录中,这可以按照我的意愿运行.但如果我低于该目录,则不会.显然,autocmd的模式与相对文件名匹配,而不是绝对名称.

Han*_*nes 16

这将回答您的所有问题.:)

:h autocmd-patterns
Run Code Online (Sandbox Code Playgroud)

  • 老实说,我发现这比接受的答案更有用,所以我向你推销了一个upvote.下次,尝试从文档中提供示例或引用的文本! (3认同)

AlB*_*lue 15

所以,我在我的代码中用特定路径下的路径完成了这个.你需要这样做:

autocmd BufRead,BufNewFile */somepath/* set filetype=sometype
Run Code Online (Sandbox Code Playgroud)

至少,这就是我用来为特定库路径下的东西设置给定文件类型的东西.希望这对你的榜样有所帮助.

  • `*/somedir/*`实际上似乎不适用于子目录.有没有人碰巧回答?谢谢! (2认同)