如果根文件夹中存在文件,请添加文件类型

时间:2012-07-25 10:08:09

标签: vim

我正在使用带有语言的框架Foo,让我们说Ruby

该项目至少有一个扩展名为.foo的文件存在于根目录中。

现在我想要在该会话中打开的每个.rb文件(即使它们位于子文件夹中),文件类型为ruby.foo

为了简单起见,我们假设我总是在项目的根文件夹中打开vim,以便工作。

我该怎么做?

1 个答案:

答案 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,它允许特定于文件类型的本地配置。强烈推荐用于此类项目相关设置!