42 votes

Comment faire de Vim détecter un type de fichier à partir de la ligne shebang?

Parfois, j'écris des scripts sans extension de nom de fichier. Par exemple:

#!/usr/bin/env node

console.log('hello world!');

J'espère que Vim peut détecter le type de fichier à partir de la ligne shebang (par exemple, #!/usr/bin/env node est javascript). Que dois-je mettre dans filetype.vim?

37voto

ib. Points 14520

En suivant les instructions figurant dans :help new-filetype-scripts, créer l' scripts.vim le fichier par l'utilisateur dans le répertoire d'exécution (~/.vimsur Les systèmes de type Unix), et d'écrire le script suivant en cela.

if did_filetype()
    finish
endif
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
    setfiletype javascript
endif

11voto

ali Points 401

créer ce fichier ~/.vim/ftdetect/node.vim avec ce contenu

fun! s:DetectNode()
    if getline(1) == '#!/usr/bin/env node'
        set ft=node
    endif
endfun

autocmd BufNewFile,BufRead * call s:DetectNode()

0voto

Andri Möll Points 116

Un peu en retard à la fête, mais le Nœud.vim gère la détection de ces fichiers JavaScript pour vous. Et puis certains. :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X