How to make Vim detect filetype from the shebang line?
Following the instructions listed in :help new-filetype-scripts
,
create the scripts.vim
file in the user runtime directory (~/.vim/
on Unix-like systems), and write the following script in it:
if did_filetype()
finish
endif
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
setfiletype javascript
endif
If you're interested in a plugin, one does exist for this:
https://github.com/vitalk/vim-shebang
This contains a pattern for node -> javascript
highlighting.
AddShebangPattern! javascript ^#!.*\s\+node\>
create this file ~/.vim/ftdetect/node.vim
with this contents
fun! s:DetectNode()
if getline(1) == '#!/usr/bin/env node'
set ft=javascript
endif
endfun
autocmd BufNewFile,BufRead * call s:DetectNode()