对于每个typescript文件,visual studio代码使用8个空格的自动缩进。这对我来说有点太贵了,但我找不到换的地方。
也许它可以作为一个设置,但在不同的名称下,因为我找不到任何与缩进有关的东西。
更新
我目前使用更漂亮的代码格式化器,这解决了所有的格式问题,自动格式化保存(如果没有语法错误)
在右下角的工具栏中,您将看到如下内容: 点击它后,你会得到使用空格或制表符缩进的选项。选择缩进类型后,您将可以选择更改缩进的大小。在上面的例子中,缩进被设置为每缩进4个空格字符。如果选择tab作为缩进字符,那么您将看到标签的尺寸而不是空间
如果您想将此应用于所有文件,而不是单个文件,那么根据您的需要,在用户设置或工作空间设置中覆盖Editor: Tab Size和Editor: Insert Spaces设置
Editor: Tab Size
Editor: Insert Spaces
要进入您的用户或工作区设置,请单击首选项 -># EYZ4。根据您的需要,验证您在用户或工作空间选项卡上,并使用搜索栏定位设置。你可能还想禁用Editor: Detect Indentation,因为当它启用时,这个设置将覆盖你为Editor: Insert Spaces和Editor: Tab Size设置的内容
Editor: Detect Indentation
更改缩进基于编程语言:
workbench.action.configureLanguageBasedSettings
如果设置菜单被打开(自从1.66.0): 4. 按→将光标放在语言筛选器的右边(例如@lang:typescript)。 5. 输入标签的尺寸并在文本框中输入您的首选值
@lang:typescript
如果打开settings.json文件: . settings.json文件 4.
"[typescript]": { "editor.tabSize": 2 }
参见:VS Code Docs
除了elliott - j的答案之外,您可能还想将editor.detectIndentation设置为false。
editor.detectIndentation
VSCode会覆盖你的editor.tabSize和editor.insertSpaces设置每个文件,如果它检测到一个文件有不同的制表符或空格缩进模式。如果你将现有文件添加到项目中,或者使用Angular Cli等代码生成器添加文件,就会遇到这个问题。上面的设置阻止VSCode这样做。
editor.tabSize
editor.insertSpaces
在我的情况下,“用于VS Code的EditorConfig”扩展覆盖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
代码格式化快捷方式:
Windows上的VSCode - Shift + Alt + F
vcode在MacOS - Shift + Option + F
VSCode在Ubuntu - Ctrl + Shift + I
如果需要,还可以使用首选项设置自定义此快捷方式。
列选择键盘 Ctrl + Shift + Alt + Arrow .
我想改变我的现有的 HTML文件的缩进从4个空格到2个空格。
我点击了状态栏中的“空格:4”按钮,并在下一个对话框中将它们更改为2。
我使用'vim'扩展。我不知道如何重新缩进没有vim
为了重新缩进我的当前文件,我使用了这个:
gg = G
添加:是的,您可以使用右下角的UI来配置空间设置。但是,如果现有代码没有格式化为新的间距,那么可以右键单击文件中的任何位置,然后单击格式的文档。我花了一段时间才弄清楚,直到我偶然发现了这个问题。
Format Document menu .
问题:接受的答案实际上没有修复当前文档中的缩进。
解决方案:运行Format Document,根据当前(新)设置重新处理文档。
Format Document
问题:我的项目中的HTML文档是“Django HTML”而不是“HTML”的类型,没有可用的格式化器。
解决方法:将它们转换为语法“HTML”,格式化它们,然后再切换回“Django HTML”。
问题:HTML格式化器不知道如何处理Django模板标记,并且取消了我精心应用的嵌套。
解决方案:安装缩进4 - 2扩展,它严格执行缩进,而不考虑当前的语言语法(这是我在本例中想要的)。
要设置所有现有文件和新文件的空格标识为2,只需把它放在你的设置。Json(在Json的根):
"[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 }
对于那些搜索“在VS code中改变缩进”的人,用图片进行了简化的解释;
第一步:点击Preferences >设置
步骤2:你正在寻找的设置是“检测缩进”,开始输入。点击“编辑器:标签大小”;
第三步:向下滚动到“编辑器:标签大小”;然后输入2(或者任何你需要的东西)。
更改会自动保存
我的改变的例子
您可以在全局User级别或Workspace级别中更改此设置。
User
Workspace
打开设置:点击左下角的齿轮,然后点击Settings,如下所示。
Settings
.
然后,做以下2个改变:(在搜索栏中输入tabSize)
tabSize
Detect Indentation
如何在VS Code中把所有文件中的4个空格缩进到2个空格
( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]))
$1
如何在VS Code中把所有文件中的2个空格缩进到4个空格
( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))
$1$1
注意:您必须首先打开PERL Regex。这是如何做到的:
"search.usePCRE2": true
希望有人能看到。
自动取消的问题是由于在VSCode的设置中有一个复选框是活动的。
search 'editor:trim auto whit空格' # EYZ0 < / p >
取消选中复选框
在首选项中设置缩进并不总是解决方案。大多数情况下,缩进是正确的,除非你碰巧从其他来源复制了一些代码,或者你的同事为你做了一些东西,并有不同的设置。然后你想要快速地将缩进从2转换为4,或者反过来。
这就是这个vscode扩展是为你做的
步骤1:在vscode中打开settings.json
settings.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 }
对我来说是docs-markdown和文档创作包。微软的许多模块又一次互相混淆!禁用扩展,现在好去再次😀
下面的搜索和替换正则表达式将现有文件中每个缩进级别的空格数从4更改为2。它相对容易理解、可靠,而且不需要安装任何东西。
^(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?
$1$2$3$4$5$6$7$8$9
您还可以在左侧的Search窗格中使用此选项,在项目中的所有文件中执行此操作。但是,请注意,每个文件只能运行一次。它会打乱已经使用2个空格的文件的缩进。
正则表达式的工作方式是在每行开头的^ ...处匹配组(?: ... )(四个空格),只捕获( ... )(前两个空格)。每个缩进级别都是可选的... ?,所以它适用于重复的模式和每行中有多少缩进级别。然后它将整个模式替换为仅捕获的空间$1, $2,…,有效地将每四个空格的缩进层替换为两个空格。
^ ...
(?: ... )
( ... )
... ?
$2
这个模式最多只能工作到9个缩进级别(我不确定$10是否可以工作,但如果是这样,它可以无限扩展)。
$10
您可以调整该模式,以减少文件中每个缩进级别的空格数,从任何原始数字减少到另一个较低的目标数字。
将目标号空格放在内括号内。然后,将剩余的原始空格数放在外括号中,因此模式中的空格总数为原始。
例如,如果您想将缩进级别从6更改为4,可以重复此搜索模式多次:
^(?:( ) )?或^(?:( {4}) {2})?
^(?:( ) )?
^(?:( {4}) {2})?
并在替换图案中使用相同数量的$1, $2。
首先,检查是否安装了“用于VS Code的EditorConfig"”。它覆盖了我的编辑器设置。我花了一整天修正这个问题。
在项目中找到.editorconfig文件,并在那里更改它将工作。
你可以打开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" }
如果您正在使用格式化程序,请检查tabWidth,这是我的情况下的问题。它表示制表符中使用的空格数。