如何从 VSCode 中的“保存格式”中排除文件扩展名和语言?
Posted
技术标签:
【中文标题】如何从 VSCode 中的“保存格式”中排除文件扩展名和语言?【英文标题】:How to exclude file extensions and languages from "format on save" in VSCode? 【发布时间】:2017-12-03 12:28:24 【问题描述】:目前在 VSCode 设置中,您可以配置保存时的格式如下:
"editor.formatOnSave": true
我想排除一些文件扩展名,例如只格式化 javascript 而不是 html 文件。
【问题讨论】:
在 Mac 上,使用Ctrl + K Shift + S
在 Linux 上,使用 Ctrl + K S
提示:如果您安装了JS-CSS-HTML Formatter 扩展,则会自动保存independently 的editor.formatOnSave
【参考方案1】:
您可以使用language specific settings 启用它仅用于特定语言,例如JavaScript:
"[javascript]":
"editor.formatOnSave": true
要为特定语言禁用它,您可以将全局默认值切换为true
并将其与特定语言的false
结合使用:
"editor.formatOnSave": true
"[javascript]":
"editor.formatOnSave": false
请注意,特定于语言的设置基于language identifiers,而不是直接基于文件扩展名。还有一个开放的功能请求也允许file extension specific settings。
如果语言 ID 不够具体,"files.associations"
可用于将具有特定扩展名和/或特定目录中的文件重新映射到另一个 ID,但这会影响语法突出显示、代码完成等. 以及。例如,这可以禁用 out
目录中 JavaScript 文件的格式设置,但它们将被视为纯文本:
"[javascript]":
"editor.formatOnSave": true
,
"files.associations":
"**/out/**/*.js": "plaintext"
【讨论】:
很好的答案。但是是否可以在特定的 python 模块或文件夹上应用格式保存??...解决方法我在它自己的 vscode 窗口中打开了这个模块。 将*.in
文件设置为纯文本的一个缺点("files.associations": "*.in": "plaintext"
是它禁用代码突出显示。有什么方法可以禁用*.in
文件的格式设置,但告诉它突出显示作为某种语言?【参考方案2】:
如果你像我一样遇到这个问题,因为你被重定向是因为这个问题VSCode : disable formatting of a specific file (or extension) 说,这是重复的(我不这么认为,因为我想要它用于特定文件)并且你'正在寻找“一次性”解决方案:
VS Code 有一个快捷方式“现在”(我不知道从什么时候开始),用于在命令 workbench.action.files.saveWithoutFormatting
下不列出格式的情况下保存文件 - 默认键绑定应该是
CTRL + K CTRL + SHIFT + S
(只需按住 CTRL,然后键入 K + SHIFT + S)。
在 OS X 上,默认键绑定是
CMD + k
然后按s
【讨论】:
不知道这个。谢谢!所以,我可以启用“FormatOnSave”,但如果我仍然想保存文件而不格式化,我按住 Ctrl 键,然后按 K + Shift + S 试了一下。太棒了! 2020 年 1 月在 linux 上是Ctrl + k
,然后是 s
很好,但是下次您进行正常保存时,它无论如何都会格式化文件。
或使用Cmd Shift P
进入快速命令并输入save
.. 然后它会显示命令“保存而不格式化”。
这很奇怪,因为Ctrl+K是删除当前行,所以在保存之前你会删除一行...【参考方案3】:
在 Mac 和 Linux 上,使用 Ctrl + K S
在 Windows 上,使用 Ctrl + K Ctrl + Shift + S
查看 VS Code 键盘快捷键:Ctrl + K, Ctrl + S
(是的,和上面差不多)并搜索“save without formatting”
【讨论】:
【参考方案4】:来自 VS Code IDE 文件 -> 首选项 -> 设置 -> 文本编辑器 -> 格式化并取消选中保存时格式化文件。
【讨论】:
【参考方案5】:我用 VSCode 弄乱了我的键盘键。一种替代方法是使用 VSCode 命令在不格式化的情况下通过执行CTRL+SHIFT+P
并执行
命令。 :)
【讨论】:
【参考方案6】:您可以在 Vscode 中使用以下设置并使用“python.formatting.autopep8Args”来指定文件或某种模式来忽略您想要的文件。当然,假设您使用 autopep8 来格式化 python 文件,其他代码格式化程序可能有其他方式来配置它。
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"python.formatting.autopep8Args": ["--exclude settings.py"],
"[python]":
"editor.defaultFormatter": "ms-python.python",
"editor.formatOnSave": true
【讨论】:
这个答案非常特定于 Python 和 autopep8,而问题是关于通常从某种语言中排除文件(“for示例仅格式化 JavaScript 而不是 HTML 文件。").以上是关于如何从 VSCode 中的“保存格式”中排除文件扩展名和语言?的主要内容,如果未能解决你的问题,请参考以下文章
vscode给 vue 项目 添加 eslint 验证提示遇到的细节问题