我正在使用带有语言的框架Foo
,让我们说Ruby
。
该项目至少有一个扩展名为.foo
的文件存在于根目录中。
现在我想要在该会话中打开的每个.rb
文件(即使它们位于子文件夹中),文件类型为ruby.foo
。
为了简单起见,我们假设我总是在项目的根文件夹中打开vim,以便工作。
我该怎么做?
答案 0 :(得分:2)
试试这个(未经测试):
" Check for a *.foo file in the root directory.
if ! empty(glob('*.foo'))
" For each opened Ruby file, append the "foo" filetype.
" Use autocmd-nested to do the filetype processing for "foo".
" Check for current value to prevent endless loop.
autocmd FileType ruby nested if &filetype ==# 'ruby' | setlocal filetype=ruby.foo | endif
endif
要在任何子目录中执行此操作,您需要向上爬行目录并在每个目录中执行glob()
。虽然我会将此委托给localrc.vim plugin,它允许特定于文件类型的本地配置。强烈推荐用于此类项目相关设置!