0

我正在使用Foo带有语言的框架,比如说Ruby.

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

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

为简单起见,假设我总是在项目的根文件夹中打开 vim 以使其正常工作。

我怎样才能做到这一点?

4

1 回答 1

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

于 2012-07-25T11:13:23.857 回答