默认情况下,为VS Code上的语言分配没有扩展名的文件

问题描述 投票:5回答:2

在VS Code中,我通常只打开没有扩展名的文件filename。我知道我可以使用更改语言模式 - >我想要的语言来更改语言语法,但是每次打开这样的文件时我都不想手动执行此操作。每次打开没有扩展名的文件时,我都可以默认使用这种语言吗?

我知道我可以这样做:

"files.associations": { "*.myphp": "php" }

但是如果没有扩展怎么办?此外,我希望能够在不影响其他文件类型(具有扩展名)的情况下执行此操作。

visual-studio-code
2个回答
0
投票

VS Code的globbing目前似乎没有办法检测没有扩展名的文件。每当有人打开问题时,他们都会将其指向this issue here。他们详细介绍了他们的globbing support here

也就是说,我确实有一个hacky解决方案。把它放在你的“WORKSPACE SETTINGS”中(不是你的常规设置,除非你真的希望它是全局的)。

{
    "files.associations": {
        "[!.]": "php",
        "[!.][!.]": "php",
        "[!.][!.][!.]": "php",
        "[!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php",
        "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "php"
    },
}

这可以通过为每个文件名长度添加规则并确保文件中没有句点(在我的示例中最多20个字符)来实现。这是一个可怕的hacky解决方案,但如果你抓住你的鼻子并设置一次,你可以忘记它并且事情正常。我在我的dotfiles repo中执行此操作,以将无扩展名文件与“shellscript”相关联。

您也可以使用双星形glob:"**/just_this_dir_name/[!.]": "php"为特定目录执行此操作。


0
投票

由于问题Expose 'change language' as command的关闭和插件Modelines的开发,我们现在可以在没有后缀的文件中使用vim样式模式行,并且vscode可以检测文件类型。

例:

文件名:post-commit

文件内容:

#!/bin/sh
# vim: set ft=sh

echo "hello world linked"

安装Modelines扩展后,文件正确突出显示:

sample highlight result

© www.soinside.com 2019 - 2024. All rights reserved.