繁体   English   中英

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

[英]Vim: how to set filetype for none extension file by `#!`?

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

使用模式行。

放置以下行:

// vim: set ft=javascript:

有关 vim 模式行的更多信息。

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

如果您不想修改 vim 附带的文件,那么另一种方法是在您的个人运行时scripts.vim中创建您自己的scripts.vim (使用:set rtp?以查看它在您的系统上的设置)。 除了一个在$ VIMRUNTIME运行。 您可以包含用于查看第一行和检测“节点”的逻辑。 您可能希望按照$VIMRUNTIME/scripts.vim的逻辑对代码进行$VIMRUNTIME/scripts.vim

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

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

...

警告:使用自动命令非常强大,可能会导致意想不到的副作用。 小心不要破坏你的文字。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM