Как заставить Vim определить тип файла из строки shebang?
Иногда я пишу скрипты без расширения имени файла. Например:
#!/usr/bin/env node
console.log('hello world!');
Я надеюсь, что Vim может определить тип файла из строки shebang (например, #!/usr/bin/env node
is javascript
). Что мне следует помещать в filetype.vim
?
Ответы
Ответ 1
Следуя инструкциям, приведенным в :help new-filetype-scripts
,
создайте файл scripts.vim
в каталоге времени выполнения пользователя (~/.vim
on
Unix-подобные системы) и напишите в ней script.
if did_filetype()
finish
endif
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
setfiletype javascript
endif
Ответ 2
создать этот файл ~/.vim/ftdetect/node.vim
с этим содержанием
fun! s:DetectNode()
if getline(1) == '#!/usr/bin/env node'
set ft=javascript
endif
endfun
autocmd BufNewFile,BufRead * call s:DetectNode()
Ответ 3
Немного поздно для вечеринки, но Node.vim обрабатывает такие файлы JavaScript для вас. А потом некоторые.: -)