Подтвердить что ты не робот

Как заставить Vim определить тип файла из строки shebang?

Иногда я пишу скрипты без расширения имени файла. Например:

#!/usr/bin/env node

console.log('hello world!');

Я надеюсь, что Vim может определить тип файла из строки shebang (например, #!/usr/bin/env node is javascript). Что мне следует помещать в filetype.vim?

4b9b3361

Ответ 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 для вас. А потом некоторые.: -)