开发者

With vim, how can I use autocmd's for files in subdirectories of a specific path?

I am trying to figure out how I can define an autocmd that influences all files under a specific path.

The autocmd I have tried is something like

autocmd BufNewFile,BufRea开发者_运维百科d /specificPath/** imap <buffer> ....

Now, I'd expect this autocmd to be used if I edited, say, /foo/bar/specificPath/baz/something/bla.txt, but not if I edited /foo/bar/here/and/there/moreBla.txt

If I start vim being in a directory 'above' specificPath, this works as I want it. But it doesn't if I am below that directory. Obviously, the autocmd's pattern is matched against the relative file name, not the absolute one.


So, I've done this in my code with paths under a particular path. You need to do:

autocmd BufRead,BufNewFile */somepath/* set filetype=sometype

At least, that's what I was using to set a given filetype for things under a particular library path. Hopefully that will help with your example.

If you want to include all subdirectories, use **:

autocmd BufRead,BufNewFile */somepath/** set filetype=sometype


VIM's inbuilt help will answer all your questions. :)

:h autocmd-pattern
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜