Vim:如何通过`#!`为无扩展文件设置文件类型?

时间:2011-04-25 03:09:22

标签: vim

如何将#! /usr/bin/env node文件类型的文件设置为javascript?

3 个答案:

答案 0 :(得分:50)

使用模式。

放下以下一行:

// vim: set ft=javascript:

more info about vim's modeline.

答案 1 :(得分:4)

在vim中,:e $VIMRUNTIME/scripts.vim。当文件名中没有东西(如扩展名)告诉vim类型时,这是对“脚本”进行文件类型检测的文件。如果你搜索“#!”在这个文件中你会看到执行此操作的逻辑。问题是,它是一堆特殊情况,并没有一个细粒度的钩子,你想做什么。一种可能性是修改这个scripts.vim文件,并提交您的修改以包含在Vim中。

如果您不想修改vim附带的文件,则可以选择在个人运行时路径中创建自己的scripts.vim(使用:set rtp?查看系统上设置的内容) 。除了 $ VIMRUNTIME中的那个之外,这将运行。您可以包含逻辑以查看第一行并检测“节点”。您可能希望在$VIMRUNTIME/scripts.vim中的逻辑之后对代码进行建模。

答案 2 :(得分:1)

autocommand可用于检查文件类型(这是加载$VIMRUNTIME/scripts.vim的方式)。

  

您可以指定在读取或写入时自动执行的命令   进入或离开缓冲区或窗口时,以及退出Vim时的文件。

...

  

警告:使用自动命令非常强大,可能会导致意外的一面   效果。小心不要破坏你的文字。

将此添加到您的.vimrc - 将在打开新文件时调用它:

autocmd BufNewFile,BufRead * if match(getline(1),"node") >= 0 | set filetype=javascript | endif