diff --git a/syntax/vue.vim b/syntax/vue.vim
index ef5bd54..66f4e70 100644
--- a/syntax/vue.vim
+++ b/syntax/vue.vim
@@ -6,37 +6,70 @@ if exists("b:current_syntax")
finish
endif
+if !exists("s:syntaxes")
+ " Search available syntax files.
+ function s:search_syntaxes(...)
+ let syntaxes = {}
+ let names = a:000
+ for name in names
+ let syntaxes[name] = 0
+ endfor
+
+ for path in split(&runtimepath, ',')
+ if isdirectory(path . '/syntax')
+ for name in names
+ let syntaxes[name] = syntaxes[name] || filereadable(path . '/syntax/' . name . '.vim')
+ endfor
+ endif
+ endfor
+ return syntaxes
+ endfunction
+
+ let s:syntaxes = s:search_syntaxes('jade', 'coffee', 'stylus', 'sass', 'less')
+endif
+
+
syntax include @HTML syntax/html.vim
unlet b:current_syntax
syntax region template keepend start=// end="" contains=@HTML fold
-syntax include @JADE syntax/jade.vim
-unlet b:current_syntax
-syntax region jade keepend start=// end="" contains=@JADE fold
+if s:syntaxes.jade
+ syntax include @JADE syntax/jade.vim
+ unlet b:current_syntax
+ syntax region jade keepend start=// end="" contains=@JADE fold
+endif
syntax include @JS syntax/javascript.vim
unlet b:current_syntax
syntax region script keepend start=/" contains=@JS fold
-syntax include @COFFEE syntax/coffee.vim
-unlet b:current_syntax
-" Matchgroup seems to be necessary for coffee
-syntax region coffee keepend matchgroup=Delimiter start="" contains=@COFFEE fold
+if s:syntaxes.coffee
+ syntax include @COFFEE syntax/coffee.vim
+ unlet b:current_syntax
+ " Matchgroup seems to be necessary for coffee
+ syntax region coffee keepend matchgroup=Delimiter start="" contains=@COFFEE fold
+endif
syntax include @CSS syntax/css.vim
unlet b:current_syntax
syntax region style keepend start=/" contains=@CSS fold
-syntax include @stylus syntax/stylus.vim
-unlet b:current_syntax
-syntax region stylus keepend start=/" contains=@stylus fold
+if s:syntaxes.stylus
+ syntax include @stylus syntax/stylus.vim
+ unlet b:current_syntax
+ syntax region stylus keepend start=/" contains=@stylus fold
+endif
-syntax include @sass syntax/sass.vim
-unlet b:current_syntax
-syntax region sass keepend start=/" contains=@sass fold
+if s:syntaxes.sass
+ syntax include @sass syntax/sass.vim
+ unlet b:current_syntax
+ syntax region sass keepend start=/" contains=@sass fold
+endif
-syntax include @less syntax/less.vim
-unlet b:current_syntax
-syntax region less keepend matchgroup=PreProc start=/" contains=@less fold
+if s:syntaxes.less
+ syntax include @less syntax/less.vim
+ unlet b:current_syntax
+ syntax region less keepend matchgroup=PreProc start=/" contains=@less fold
+endif
let b:current_syntax = "vue"