如何从shebang线让Vim检测文件类型?

时间:2012-01-17 06:44:34

标签: bash vim file-type

有时我会编写没有任何文件扩展名的脚本。例如:

#!/usr/bin/env node

console.log('hello world!');

我希望Vim可以从shebang行检测文件类型(例如#!/usr/bin/env nodejavascript)。我应该把什么放进filetype.vim

4 个答案:

答案 0 :(得分:30)

按照:help new-filetype-scripts中列出的说明操作, 在用户运行时目录(scripts.vim上创建~/.vim文件 类Unix系统),并在其中编写以下脚本。

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

答案 1 :(得分:10)

创建此文件~/.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()

答案 2 :(得分:0)

派对有点晚了,但是Node.vim会为你处理这样的JavaScript文件。然后还有一些。 : - )

答案 3 :(得分:-1)

如果您对插件感兴趣,那么确实存在一个插件:

https://github.com/vitalk/vim-shebang

这包含node -> javascript突出显示的模式。

AddShebangPattern! javascript ^#!.*\s\+node\>