我已经开始使用Visual Studio Code编写一些bash脚本来增强git,并且我希望编辑器在这样做的时候使用语法突出显示。
这些文件没有扩展名,否则git不会将它们作为附加命令来使用。
下面是这样一个脚本的示例名称:git-review
因此,问题是,如何配置Visual Studio代码以对这些文件使用Bash语法突出显示?
如果我从Visual Studio代码内部将文件重命名为带有.sh的名称,如git-review.sh,然后重命名为无扩展名(git-review),Visual Studio代码似乎记住了这一点并显示语法突出显示,但我添加到文件夹中的任何新文件都突出显示为纯文本(直到我执行重命名舞蹈)。Visual Studio代码似乎记住了这一点,即使我关闭该文件并重新启动Visual Studio代码,然后重新打开该文件。多长时间我都不知道。
我可以接受由于某种原因没有作为bash脚本突出显示的扩展名的纯文本文件,但显然,如果有一种方法可以让Visual Studio代码更智能,比如查看#!/bin/sh的第一行,那就更好了。
我尝试使用“为‘.xyz’配置文件关联”来查看这些关联是如何存储在设置文件中的,并发现这可以正确地将Bash突出显示应用于.xyz文件:
"files.associations": {
"*.xyz": "shellscript"
},但是,这不会:
"files.associations": {
"*.": "shellscript"
},这也不是:
"files.associations": {
"*": "shellscript"
},有没有办法诱使这个设置为无扩展文件工作?
这是用于Windows的Visual Studio代码,如果这很重要的话。
发布于 2017-12-20 22:12:36
如果有一种方法可以让Visual Studio代码更智能,比如查看
#!/bin/sh的第一行,那就更好了。
实际上,VSCode已经基于shebang与shellscript关联了文件。但是,请注意,它不会动态检测到它-如果您添加了shebang,您将需要关闭并重新打开该文件,以便VSCode注意到它。
发布于 2017-12-20 21:55:46
作为一种解决办法,您可以通过单击VS代码编辑器的右下角“选择语言模式”,然后选择文件类型(也可以是Ctrl+K M)来手动设置文件的突出显示。
缺点是你每次都要这样做,但这比你描述的重命名过程容易得多。

发布于 2021-02-05 14:19:44
您可以使用globbing将其添加到您的settings.json中,如此post中所示。
"files.associations": {
/* BEGIN: hack to make files with no extension use bash syntax highlighting */
"[!.]": "shellscript",
"[!.][!.]": "shellscript",
"[!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript",
"[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "shellscript"
/* END: hack to make files with no extension use bash syntax highlighting */
},https://stackoverflow.com/questions/47636026
复制相似问题