2012-07-25 62 views
0

我正在使用帶有語言的框架Foo,假設我們說Ruby如果根文件夾中存在文件,則添加文件類型

該項目至少有一個文件,擴展名爲.foo,存在於根目錄中。

現在我想要在該會話中打開的每個.rb文件(即使它們位於子文件夾中),文件類型爲ruby.foo

爲了簡單起見,假設我總是在項目的根文件夾中打開vim以使其工作。

我該怎麼做?

+0

所以如果'Foo'出現在文件路徑中,你想要''foo'附加到文件類型? – 2012-07-25 10:55:51

回答

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 

爲了使這項工作在任何子目錄,則需要向上爬行的目錄和執行在每個​​3210。雖然我會將其委託給localrc.vim plugin,該文件允許特定於文件類型的本地配置。強烈建議這樣的項目相關的設置!

+0

我認爲這應該起作用,因爲我只在.foo文件的文件夾中出現此錯誤 - 它說'filetype'在第二行中是未定義的。有任何想法嗎? – Dogbert 2012-07-25 11:56:34

+1

嘗試將'if filetype'更改爲'if&filetype'。 – 2012-07-25 11:59:27

+0

@RandyMorris作品!謝謝你們兩位。 – Dogbert 2012-07-25 12:04:49

相關問題