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
精彩评论