对于每个打字稿文件,Visual Studio 代码使用 8 个空格的自动缩进。这对我的口味来说有点太多了,但我找不到在哪里改变它。
也许它可以作为设置使用,但名称不同,因为我找不到与缩进相关的任何内容。
更新
我目前正在使用 Prettier code formatter,它通过保存时自动格式化解决了所有格式化问题(如果没有语法错误)
https://i.stack.imgur.com/OcEgm.png
如果您想将此应用于所有文件而不是单个文件,请覆盖 用户设置 或 工作区设置 中的 Editor: Tab Size
和 Editor: Insert Spaces
设置取决于你的需要
编辑 1
要访问您的用户或工作区设置,请转到 Preferences -> 设置。根据您的需要,确认您在 User 或 Workspace 标签上,并使用搜索栏找到设置。您可能还想禁用 Editor: Detect Indentation
,因为此设置将覆盖您在启用时为 Editor: Insert Spaces
和 Editor: Tab Size
设置的内容
您可以在全局 User
级别或 Workspace
级别更改此设置。
打开设置:点击左下角的齿轮,然后点击Settings
,如下图。
https://i.stack.imgur.com/FvoPG.png
然后,进行以下 2 项更改:(在搜索栏中输入 tabSize
)
取消选中 Detect Indentation 复选框将选项卡大小更改为 2/4 (虽然我强烈认为 2 对 JS 是正确的。哈哈 :))
https://i.stack.imgur.com/BltIv.png
根据编程语言更改缩进:
打开命令面板(CtrlShiftP | macOS:⇧⌘P)。键入并选择:首选项:配置语言特定设置...(命令 id:workbench.action.configureLanguageBasedSettings)。选择一种编程语言(例如 TypeScript)。
如果设置菜单打开(自 1.66.0 起): 4. 按 → 将光标放在语言过滤器的右侧(例如 @lang:typescript)。 5. 键入 Tab Size 并在文本框中输入您的首选值。
如果 settings.json 文件被打开: 4. 添加这个代码: "[typescript]": { "editor.tabSize": 2 }
除了 Elliot-J 的回答之外,您可能还希望将 editor.detectIndentation
设置为 false。
如果 VSCode 检测到文件具有不同的制表符或空格缩进模式,它将覆盖每个文件的 editor.tabSize
和 editor.insertSpaces
设置。如果将现有文件添加到项目中,或者使用 Angular Cli 等代码生成器添加文件,则可能会遇到此问题。上面的设置阻止了 VSCode 这样做。
代码格式化快捷键:
Windows 上的 VSCode - Shift + Alt + F
MacOS 上的 VSCode - Shift + Option + F
Ubuntu 上的 VSCode - Ctrl + Shift + I
如果需要,您还可以使用首选项设置自定义此快捷方式。
使用键盘 Ctrl + Shift + Alt + 箭头选择列
Shift + Alt + F
将文件中的所有缩进从 8 个空格更改为默认的 4 个空格。正是我想要的:)
Ctrl + Shift + I
确实有帮助
在我的情况下,“EditorConfig for VS Code”扩展覆盖了 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
如何将VS Code中所有文件中的4个空格缩进为2个空格
打开文件搜索
打开正则表达式
输入:( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]) ) 在搜索栏
在替换字段中输入:$1
如何将VS Code中所有文件中的2个空格缩进为4个空格
打开文件搜索
打开正则表达式
在搜索栏中输入:( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))
在替换字段中输入:$1$1
注意:您必须先打开 PERL Regex。这是如何:
打开设置并转到 JSON 文件
将以下内容添加到 JSON 文件“search.usePCRE2”:true
希望有人看到这个。
要将所有现有文件和新文件的空间标识设置为 2,只需将其放入您的 settingns.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 代码缩进”的人提供图片的简化解释
第 1 步:点击首选项 > 设置
https://i.stack.imgur.com/OQzVp.png
第 2 步:您要查找的设置是“检测缩进”,开始输入。点击“编辑器:标签大小”
https://i.stack.imgur.com/c0lUV.png
第 3 步:向下滚动到“编辑器:标签大小”并输入 2(或您需要的任何内容)。
https://i.stack.imgur.com/g1nen.png
更改会自动保存
https://i.stack.imgur.com/VIrGt.png
我的更改示例
https://i.stack.imgur.com/PK5gn.png
在首选项中设置缩进并不总是解决方案。大多数情况下,缩进是正确的,除非您碰巧从其他来源复制了一些代码代码,或者您的同事为您制作了一些东西并具有不同的设置。然后,您只想快速将缩进从 2 转换为 4 或反之。
That's what this vscode extension is doing for you
https://i.stack.imgur.com/SObpq.gif
第 1 步:在 vscode 中打开 settings.json
第 2 步:为编程语言添加如下行(示例如下)
用于打字稿和 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
}
Open settings.json in vscode
执行此操作的方法是 ctrl+shit+p 并在 Mac 上键入设置或 cmd+shift+p。有一个全局 settings.json 和一个工作区 settings.json。我更喜欢使用 prettier.js 作为我的格式化程序,因为它有更多的样式设置。
问题:接受的答案实际上并没有修复当前文档中的缩进。
解决方案:运行 Format Document
以根据当前(新)设置重新处理文档。
问题:我项目中的 HTML 文档的类型是“Django HTML”而不是“HTML”,并且没有可用的格式化程序。
解决方案:将它们切换为语法“HTML”,格式化它们,然后切换回“Django HTML”。
问题:HTML 格式化程序不知道如何处理 Django 模板标签,并且撤消了我仔细应用的大部分嵌套。
解决方案:安装 Indent 4-2 扩展,它严格执行缩进,而不考虑当前的语言语法(这是我在这种情况下想要的)。
我想将现有 HTML 文件的缩进从 4 个空格更改为 2 个空格。
我单击状态栏中的“空格:4”按钮,并在下一个对话框中将它们更改为两个。
我使用“vim”扩展名。如果没有 vim,我不知道如何重新缩进
为了重新缩进我当前的文件,我使用了这个:
gg
=
G
补充:是的,您可以使用右下角的 UI 来配置空间设置。但是,如果您有未格式化为新间距的现有代码,则可以右键单击文件中的任意位置,然后单击Format Document。我花了一段时间才弄清楚这一点,直到我偶然发现了 this issue。
自动取消定位的问题是由于 VSCode 设置中的复选框处于活动状态。按着这些次序:
转到首选项转到设置搜索“编辑器:修剪自动空白”取消选中该框
以下搜索和替换正则表达式将现有文件中每个缩进级别的空格数从 4 个更改为 2 个。它相对容易理解、可靠,并且不需要安装任何东西。
指示
按 CtrlH(或 macOS 上的 ⌥⌘F)。
通过单击搜索弹出窗口中的 .* 按钮或按 AltR(或 macOS 上的 ⌥⌘R)确保正则表达式匹配已打开。
在查找字段中,输入 ^(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?(?:( ) )?( ?:( ) )?(?:( ) )?(?:( ) )?
在替换字段中,输入 $1$2$3$4$5$6$7$8$9
最后按 CtrlEnter(或 macOS 上的 ⌘Enter)应用到当前文件。
您还可以在左侧的“搜索”窗格中使用它来跨项目中的所有文件执行此操作。但是,请注意,每个文件只能运行一次。它会弄乱已经使用 2 个空格的文件的缩进。
额外的信用:它是如何工作的
正则表达式的工作方式是在每行的开头 ^ ...
一次匹配四个空格的组 (?: ... )
,只捕获 ( ... )
前两个空格。每个缩进级别都是可选的 ... ?
,因此它适用于与模式重复并且每行中有多少缩进级别一样多的缩进级别。然后它仅用捕获的空格 $1
、$2
、... 替换整个模式,有效地用两个空格替换每个四个空格的缩进级别。
此模式最多只能使用 9 个缩进级别(我不确定 $10
是否有效,但如果可以,则可以无限扩展)。
额外的额外学分:扩展
您可以调整模式以将文件中每个缩进级别的空格数从任何原始数字减少到另一个较低的目标数字。
将目标空格数放在内括号内。然后,将剩余的原始空格数放在外括号中,这样模式中的空格总数就是原始的。
例如,如果您想将缩进级别从 6 更改为 4,请根据需要多次重复此搜索模式:
^(?:( ) )?
或 ^(?:( {4}) {2})?
并在替换模式中使用相同数量的 $1
、$2
。
首先,检查您是否安装了“EditorConfig for VS Code”。它覆盖了我的编辑器设置。我花了一整天的时间来纠正这个问题。
在项目中找到 .editorconfig 文件,并且在那里更改的文件将起作用。
我喜欢这些缩进设置,您可以根据需要修改它们。
您可以通过键入 CTRL+SHIFT+P 打开 VScode setting.json 文件并粘贴到 JSON 设置下方
设置.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"
}
不定期副业成功案例分享
editor.tabSpaces
不会更改所有文件中的间距。它只会为将来创建的文件更改它。仍然没有解决方案可以一次性修复所有文件。