对于每个typescript文件,visual studio代码使用8个空格的自动缩进。这对我来说有点太贵了,但我找不到换的地方。
也许它可以作为一个设置,但在不同的名称下,因为我找不到任何与缩进有关的东西。
更新
我目前正在使用更漂亮的代码格式化器,它解决了所有的格式问题,自动格式化保存(如果没有语法错误)
对于每个typescript文件,visual studio代码使用8个空格的自动缩进。这对我来说有点太贵了,但我找不到换的地方。
也许它可以作为一个设置,但在不同的名称下,因为我找不到任何与缩进有关的东西。
更新
我目前正在使用更漂亮的代码格式化器,它解决了所有的格式问题,自动格式化保存(如果没有语法错误)
当前回答
您可以在全局用户级别或工作区级别更改此设置。
打开设置:点击左下角的齿轮,然后点击如下所示的设置。
然后,执行以下2项更改:(在搜索栏中输入tabSize)
取消选中“检测缩进”复选框 将制表符大小改为2/4(尽管我强烈认为2对于JS是正确的。哈哈:))
其他回答
第一步:打开设置。vscode中的Json
步骤2:为编程语言添加如下代码行(示例如下)
用于typescript和javascript
"editor.detectIndentation": false,
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation":false
},
"[javascript]": {
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.detectIndentation":false
}
在我的案例中,“EditorConfig for VSCode”扩展覆盖了VSCode设置。 如果您已经安装了它,那么检查项目根文件夹中的.editorconfig文件。
下面是一个配置示例。“indent_size”设置制表符的空格数。
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
下面的搜索和替换正则表达式将现有文件中每个缩进级别的空格数从4更改为2。它相对容易理解、可靠,而且不需要安装任何东西。
指令
按ctrl + +(或macOS上的“⌘+ +”)。 通过单击搜索弹出框中的。*按钮或按AltR(或macOS上的“⌘R”),确保打开正则表达式匹配。 在Find字段中,输入^(?())?(?())?(?())?(?())?(?())?(?())?(?())?(?())?(?:())? 在Replace字段中输入$1$2$3$4$5$6$7$8$9 最后按下CtrlEnter(或macOS上的⌘Enter)应用到当前文件。
您还可以在左侧的Search窗格中使用此选项,在项目中的所有文件中执行此操作。但是,请注意,每个文件只能运行一次。它会打乱已经使用2个空格的文件的缩进。
额外学分:它是如何工作的
正则表达式的工作方式是匹配组(?:)在开始的时候一次四个空格^…在每一行中,只捕获(…)前两个空格。每个缩进级别都是可选的…?,所以它适用于许多缩进级别,因为模式是重复的,每一行都有。然后将整个模式替换为仅捕获的空间$1,$2,…,有效地将每四个空格的缩进层替换为两个空格。
这个模式最多只能工作到9个缩进级别(我不确定10美元是否可以工作,但如果是这样的话,可以无限扩展)。
额外额外学分:扩展
您可以调整该模式,将文件中每个缩进级别的空格数从任何原始数字减少到另一个较低的目标数字。
将目标空格数放在内括号内。然后,将剩余的原始空格数放在外括号中,因此模式中的空格总数就是原始的空格数。
例如,如果您想将缩进级别从6更改为4,可以重复此搜索模式多次:
^ (?:())?或^ (?:({4}) {2})?
并使用相同数量的1美元,2美元的替换模式。
我喜欢这些缩进设置,你可以根据需要修改它们。
你可以打开VScode设置。输入CTRL+SHIFT+P并粘贴到json设置下面
setting.json
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.formatOnSave": true,
"editor.tabSize": 4,
"editor.insertSpaces": false,
"editor.detectIndentation": false,
"editor.wrappingIndent": "deepIndent",
"editor.autoIndent": "full"
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features",
"editor.formatOnSave": true,
"editor.tabSize": 4,
"editor.insertSpaces": false,
"editor.detectIndentation": false,
"editor.wrappingIndent": "deepIndent",
"editor.autoIndent": "full"
}
问题:接受的答案实际上没有修复当前文档中的缩进。
解决方案:运行Format Document,根据当前(新)设置重新处理文档。
问题:我的项目中的HTML文档是“Django HTML”而不是“HTML”的类型,没有可用的格式化器。
解决方法:将它们转换为语法“HTML”,格式化它们,然后再切换回“Django HTML”。
问题:HTML格式化器不知道如何处理Django模板标记,并且取消了我精心应用的嵌套。
解决方案:安装Indent 4-2扩展,它严格执行缩进,而不考虑当前的语言语法(这是我在本例中想要的)。