在Visual Studio Code中设置语法高亮的语言

485
在混淆开始之前,这个问题是关于Code的,它是新的轻量级Visual Studio编辑器。 您可以从此处获取它:https://code.visualstudio.com/ 我有一个带有CSS的文本文件(.txt)并想要获得语法高亮。您可以使用ctrl+shift+p打开命令面板。但在那里,您不能像Sublime那样设置语法。
是否有其他方法可以从我的文本文件中获取CSS颜色?

2
为进一步强调,很可惜这里的解决方案不适用于Visual Studio。我刚刚了解到Visual Studio Code的存在。如果常规的Visual Studio采用类似的语言模式切换就太好了。哦,微软...... - Mr.Z
10个回答

836
在右下角,靠近笑脸的左边,有一个标志写着“纯文本”。当你点击它时,会出现包含所有语言的菜单,你可以选择你想要的语言。

VSCode


10
如何让带有这个扩展名的文件始终使用该格式? - frumbert
1
如果其他人(在Mac上)尝试此操作时不小心打开了其键映射并想知道原因,请更加明确 - 按住Cmd键并按K键,松开Cmd键,然后按M键。 - tklives
4
现有的快捷方式确实很愚蠢。我进入键盘快捷键,找到了“更改语言模式”,并将快捷键设置为cmd+opt+p,虽然与 sublime 不完全相同,但对于肌肉记忆来说要比 K+M 容易得多。 - Matt Fletcher
2
有没有一种永久的方法可以在项目中设置文件的属性?由于某种奇怪的原因,我的(markdown)项目自述文档需要提供ProjectNotes.txt。我讨厌每次编辑文件时都要这样做。 - roberto tomás

348

按下Ctrl+KM,然后输入(或单击)所需语言。

或者,从命令面板中访问,寻找如下“更改语言模式”:

enter image description here


57
如果您看到“扩展”面板,可能是因为您按下的是Ctrl + K,Ctrl + M,而不是应该按下的Ctrl + K,M,这是我犯的错误。 - Chris
18
在Mac上,按下cmd + K M键组合。 - Adam Parkin
9
@gitsitgo,K M 的含义是什么? - Pacerier
17
应将此处更名为“更改语法高亮”。 - Simon Somlai
5
如有帮助,我试图使用“CMD + k,m”组合键,但实际上应该先按下“CMD + k”组合键,然后释放这两个键,最后再按下“m”键。 - Akshay Khale
显示剩余7条评论

42

人们无法使语法高亮化工作的另一个原因是他们没有安装适当的语法包。虽然有些默认的语法包是预装的(比如Swift、C、JS、CSS),但有些可能不可用。

为了解决这个问题,您可以按Cmd + Shift + P → "install Extensions",然后查找您要添加的语言,比如"Scala"。

enter image description here

找到合适的语法包,安装并重新加载。这将使用预定义扩展名的文件正确地捕捉到其所属的语法,例如在此情况下为.scala

除此之外,您可能希望VS Code将所有具有特定自定义扩展名的文件视为首选语言。假设您想将所有*.es文件标记为JavaScript,则只需打开"User Settings" (Cmd + Shift + P → "User Settings") 并配置自定义文件关联,像这样:

  "files.associations": {
    "*.es": "javascript"
  },

36

自定义文件扩展名的语法高亮

任何自定义文件扩展名都可以通过用户设置中的自定义文件关联与标准的语法高亮相关联,如下所示。

更改文件关联设置以实现永久语法高亮

请注意,这将是一个永久性的设置。 为了仅在当前会话中设置,可以在选择语言模式框中输入首选语言(而不更改文件关联设置)

安装新的语法包

如果默认情况下不存在所需的语法包,则可以通过扩展市场(Ctrl+Shift+X)添加它们并搜索相应的语言包。

您可以进一步重现上述步骤,将文件扩展名映射到新的语法包。


立即将文件关联设置为默认程序是非常方便的,因为下次启动时会自动记住。但是,它不会生成一个项目文件以进行版本控制,所以似乎该设置被保存在我的本地计算机首选项中,作为跨项目的全局设置(这可能是我想要的,也可能不是)。如果需要一个特定于项目的版本化文件,请参见GorvGoyl的答案,其中包含settings.json文件。 - hsandt

20

永久设置语言语法:
打开 settings.json 文件

  • 使用 javascript 格式化所有 txt 文件
"files.associations": {
            "*.txt": "javascript"
          
     }
  • 格式化所有未保存的文件(untitled-1等)为javascript
"files.associations": {
            "untitled-*": "javascript"
          
     }

1
Sayooj Samuel的回答有效,但我也应用了这个方法以确保我的项目知道这一点,并且由于我可以对settings.json进行版本控制,如果我在另一台电脑上克隆我的项目,它会立即使用正确的语法。 - hsandt

11
请注意,对于“Untitled”编辑器(“Untitled-1”,“Untitled-2”),您现在可以在设置中设置语言。
先前的设置为:
"files.associations": {
        "untitled-*": "javascript"
 }

这种方法将不再适用,因为VSCode 1.42 (Q1 2020)将更改无标题编辑器的标题
标题现在将成为编辑器标题的文档第一行,以及作为描述的一部分的通用名称。
它将不再以"untitled-"开头。

请参见"未命名编辑器改进"

关于这些“Untitled”编辑器的相关语言:

默认情况下,未命名的文件没有特定的语言模式配置。VS Code有一个设置files.defaultLanguage,用于为未命名的文件配置默认语言。随着这个版本的发布,该设置可以采用一个新值{activeEditorLanguage},它将动态地使用当前活动编辑器的语言模式,而不是固定的默认值。此外,当您将文本复制并粘贴到未命名的编辑器中时,如果文本是从VS Code编辑器中复制的,VS Code现在会自动更改未命名编辑器的语言模式。

https://media.githubusercontent.com/media/microsoft/vscode-docs/vnext/release-notes/images/1_42/untitled-copy2.gif

并查看在VSCode 1.43中的workbench.editor.untitled.labelFormat


在2021年3月(可能是VSCode 1.55),问题118455“针对无标题文件的自动语言分类”和PR 119325正在研究某种无标题文件的自动语言检测。

如果您忘记了,在 VSCode 1.56,2021 年 4 月:

无标题编辑器提示

我们注意到许多新用户不知道必须设置语言才能获得完整的 VS Code 语言支持。

为了解决这个问题,我们为无标题编辑器引入了一个提示,以帮助用户设置正确的语言模式。
对于高级用户来说,无标题提示可能没有帮助,因此当您开始输入时,它会立即消失,或者您可以选择“不再显示”以永远不再显示提示。

无标题编辑器显示无标题提示-- https://github.com/microsoft/vscode-docs/raw/vnext/release-notes/images/1_56/untitled-hint.png


在VScode 1.60(2021年8月)中:

自动语言检测

上一个版本,我们引入了一个实验性功能,用于自动根据文件内容设置文件的语言模式。
这个功能使用机器学习猜测语言,并且完全在您的计算机上进行。它由开源ML库Tensorflow.js和GitHub用户@yoeo的ML模型Guesslang提供支持。
这个版本,我们默认启用了这个功能,并将自动语言检测扩展到没有文件扩展名的文件。在Notebooks中,我们提供了一种简单的方法来使用语言选择器请求语言检测。
这使得一些有趣的场景成为可能:
- 从在线获取示例并将其粘贴到无标题编辑器中进行语言检测。 - “管道进入代码”的语言检测(展示无扩展名文件的检测)。 - Notebooks中的自动检测选项。

VSCode 1.65(2022年2月)新增功能:

改进的自动语言检测

启用新设置workbench.editor.historyBasedLanguageDetection后,未命名编辑器将使用改进的自动语言检测算法,该算法考虑了您的编辑器历史记录和当前工作区的内容,提供比以前更少的输入文本就能得到检测结果。

以下是在JavaScript、TypeScript、Markdown、PHP和C++中使用此功能的示例(支持更多语言):

Using automatic language detection

主题:GitHub Light + HC 定制


VSCode 1.70(2022年7月)将提出(问题152920, PR 153872

提供一个命令来创建一个带有特定语言设置的新未命名文件

允许在命令中指定语言ID以创建新的未命名文件

registerCommandAndKeybindingRule允许在“New Untitled File args”中添加语言ID(如果已知)。

这允许像[创建Python文件](command:toSide:workbench.action.files.newUntitledFile?<args>)这样的链接,它将直接为Python语言创建一个新的未命名文件。


2

这让我 Sublime Text 的肌肉记忆感到愉悦,非常感谢。 - Sreenikethan I

2
您可以按照以下步骤在 VS Code 中更改语言模式。
选择要更改的文件,然后使用以下快捷方式。
在 macOS 上:
按下 +K 然后按下 M
在 Windows 和 Linux 上:
按下 CTRL+K 然后按下 M 从提供的列表中选择语言或选择自动检测。 enter image description here

0

Restricted mode

有时候这也会阻止这个插件的运行

-1

这可能不是对问题的完全正确的答案,但这就是我遇到的情况。有时候我们寻找的答案可能并不是我们需要的答案。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接