Answers:
默认情况下,Visual Studio Code将尝试根据您打开的文件来猜测您的缩进选项。
您可以通过来关闭缩进猜测"editor.detectIndentation": false
。
您可以通过以下三种设置轻松自定义此设置:Windows在菜单文件 → 首选项 → 用户设置,对于Mac在菜单代码 → 首选项 → 设置或⌘,
:
// The number of spaces a tab is equal to. This setting is overridden
// based on the file contents when `editor.detectIndentation` is true.
"editor.tabSize": 4,
// Insert spaces when pressing Tab. This setting is overriden
// based on the file contents when `editor.detectIndentation` is true.
"editor.insertSpaces": true,
// When opening a file, `editor.tabSize` and `editor.insertSpaces`
// will be detected based on the file contents. Set to false to keep
// the values you've explicitly set, above.
"editor.detectIndentation": false
tabSize
每种语言?例如,在同一工作区中使用不同语言(例如Ruby,JavaScript,CSS等)编辑多个文件时-Ruby是2
空格,但CSS 4
通常是...。
好吧,如果您喜欢开发人员的方式,Visual Studio Code允许您为指定不同的文件类型tabSize
。这是我的示例,settings.json
默认为四个空格,而JavaScript / JSON为两个空格:
{
// I want my default to be 4, but JavaScript/JSON to be 2
"editor.tabSize": 4,
"[javascript]": {
"editor.tabSize": 2
},
"[json]": {
"editor.tabSize": 2
},
// This one forces the tab to be **space**
"editor.insertSpaces": true
}
PS:好吧,如果您不知道如何打开此文件(特别是在Visual Studio Code的新版本中),则可以:
我们可以使用EditorConfig及其VS Code扩展的EditorConfig来按文件类型控制选项卡的大小。然后,我们可以做出+ + 具体到每个文件类型。AltShiftF
ext install EditorConfig
[*]
indent_style = space
[*.{js,ts,json}]
indent_size = 2
[*.java]
indent_size = 4
[*.go]
indent_style = tab
EditorConfig会覆盖为编辑器配置的所有settings.json。无需更改editor.detectIndentation
。
ext
您在说什么(请通过编辑答案来回答,而不是在注释中(适当时在此处))?一些Node.js麻烦吗?什么平台?
如果在Visual Studio Code中使用更漂亮的扩展名,请尝试将其添加到settings.json文件中:
"editor.insertSpaces": false,
"editor.tabSize": 4,
"editor.detectIndentation": false,
"prettier.tabWidth": 4,
"prettier.useTabs": true // This made it finally work for me
在Visual Studio Code版本1.31.1或更高版本中(我认为):与sed Alex Dima一样,您可以通过以下设置轻松地自定义此设置
如果此帖子上的可接受答案无效,请尝试以下操作:
我在编辑器中安装了Visual Studio Code的EditorConfig,它始终覆盖我的用户设置,这些用户设置使用空格缩进文件。每次我在编辑器选项卡之间切换时,即使将缩进转换为空格,我的文件也会自动与选项卡缩进!
在我卸载此扩展程序后,缩进不再在切换编辑器选项卡之间更改,并且我可以更加舒适地工作,而不必每次切换文件时都必须手动将选项卡转换为空格,这很痛苦。
我们心爱的社区成员已经提供了很多很好的答案。我实际上想添加C#代码tabSize并找到此线程。我发现了许多解决方案,并且官方VS Code文档很棒。我只想分享我的C#设置:
"[csharp]": {
"editor.insertSpaces": true,
"editor.tabSize": 4
},
只需将以上代码复制并粘贴到您的settings.json
文件中并保存。谢谢
@ alex-dima从2015年开始的解决方案将更改所有文件的标签大小和空格,而@Tricky从2016年开始的解决方案似乎仅更改当前文件的设置。
截至2017年,我发现了适用于每种语言的另一种解决方案。Visual Studio Code没有为Elixir使用正确的选项卡大小或空间设置,因此我发现可以更改所有Elixir文件的设置。
我单击状态栏中的语言(在我的情况下为“ Elixir”),选择“配置基于'Elixir'语言的设置...”,然后编辑Elixir特定的语言设置。我只是从左侧的默认设置中复制了“ editor.tabSize”和“ editor.insertSpaces”设置(很高兴显示了这些设置),然后在右侧对其进行了修改。
效果很好,现在所有Elixir语言文件都使用正确的选项卡大小和空间设置。
我必须像以前的答案一样进行许多设置编辑,所以我不知道在进行大量修改后哪个设置可以正常工作。
在关闭并打开IDE之前,什么都没有做,但是我做的最后三件事是禁用lonefy.vscode-js-css-html-formatter
, "html.format.enable": true,
然后重新启动Visual Studio。
{
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"workbench.colorTheme": "Default Light+",
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features",
"editor.tabSize": 2,
"editor.detectIndentation": false,
"editor.insertSpaces": true
},
"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true,
"editor.tabSize": 2,
"typescript.format.insertSpaceAfterConstructor": true,
"files.autoSave": "afterDelay",
"html.format.indentHandlebars": true,
"html.format.indentInnerHtml": true,
"html.format.enable": true,
"editor.detectIndentation": false,
"editor.insertSpaces": true,
}