ChatGPT解决这个技术问题 Extra ChatGPT

如何更改 Visual Studio Code 中的缩进?

对于每个打字稿文件,Visual Studio 代码使用 8 个空格的自动缩进。这对我的口味来说有点太多了,但我找不到在哪里改变它。

也许它可以作为设置使用,但名称不同,因为我找不到与缩进相关的任何内容。

更新

我目前正在使用 Prettier code formatter,它通过保存时自动格式化解决了所有格式化问题(如果没有语法错误)


C
Caustic

https://i.stack.imgur.com/OcEgm.png

如果您想将此应用于所有文件而不是单个文件,请覆盖 用户设置工作区设置 中的 Editor: Tab SizeEditor: Insert Spaces 设置取决于你的需要

编辑 1

要访问您的用户或工作区设置,请转到 Preferences -> 设置。根据您的需要,确认您在 UserWorkspace 标签上,并使用搜索栏找到设置。您可能还想禁用 Editor: Detect Indentation,因为此设置将覆盖您在启用时为 Editor: Insert SpacesEditor: Tab Size 设置的内容


@yildizm85 图片对我来说没有问题。该图像是直接上传到 SO 的,所以如果它损坏了,这可能是他们的问题。
更改 editor.tabSpaces 不会更改所有文件中的间距。它只会为将来创建的文件更改它。仍然没有解决方案可以一次性修复所有文件。
不响应如何更改缩进大小的问题。
这是超级不直观的。我已经将缩进设置为使用空格。为什么我需要单击空格选项才能进入第二个隐藏菜单来设置空格数?我使用的所有其他编辑器都是单击状态栏中的缩进详细信息,并且有许多空格选项。在 VS Code 中,我需要在 Stack Overflow 上查找它,因为我想要的菜单隐藏在我不想更改的选项后面。
每次我创建一个新文件时,它似乎总是恢复到默认的 4 个空间?!?!
X
Xin

您可以在全局 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


对于那些想知道的人,这将自动重新格式化您项目中的所有文件,而不仅仅是您创建的新文件。您可能必须重新启动 vs 代码才能使更改生效。
这两个设置都可以很好地进行我的安装(选中框,设置我喜欢的空间;这是一个全新的 Angular 项目,所以没有复制/粘贴代码来搞砸),但它仍然没有至少对于打字稿文件来说是这样。我添加了上面 Martin Schneider 描述的语言特定设置,所以希望它会起作用。
更新我之前的评论: Angular 似乎也生成了一个我以前没有注意到的“.editorconfig”文件。在那个文件中,当我想要 4 时,属性“indent_size”被设置为 2。这可能是最初的罪魁祸首。我已将其设置为 4 并删除了特定于语言的设置。
M
Martin Schneider

根据编程语言更改缩进:

打开命令面板(CtrlShiftP | macOS:⇧⌘P)。键入并选择:首选项:配置语言特定设置...(命令 id:workbench.action.configureLanguageBasedSettings)。选择一种编程语言(例如 TypeScript)。

如果设置菜单打开(自 1.66.0 起): 4. 按 → 将光标放在语言过滤器的右侧(例如 @lang:typescript)。 5. 键入 Tab Size 并在文本框中输入您的首选值。

如果 settings.json 文件被打开: 4. 添加这个代码: "[typescript]": { "editor.tabSize": 2 }

See also: VS Code Docs


一个人如何(在哪里)使用命令 id?我在文件首选项下看不到“配置语言特定设置”。
@AlanBaljeu 您可以使用命令ID,例如定义键盘快捷键。文件 > 首选项下没有“配置语言特定设置”,因为步骤 2 不是菜单项,但斜体文本应输入到执行步骤 1 后出现的输入字段中。
谢谢,这正是我想要的!
您如何根据文件扩展名进行更改?
@Vic 请参阅下面的 Language identifier 和“为语言添加文件扩展名”。
R
RMuesi

除了 Elliot-J 的回答之外,您可能还希望将 editor.detectIndentation 设置为 false。

如果 VSCode 检测到文件具有不同的制表符或空格缩进模式,它将覆盖每个文件的 editor.tabSizeeditor.insertSpaces 设置。如果将现有文件添加到项目中,或者使用 Angular Cli 等代码生成器添加文件,则可能会遇到此问题。上面的设置阻止了 VSCode 这样做。


S
Sujatha Girijala

代码格式化快捷键:

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 确实有帮助
G
Grazerbeam

在我的情况下,“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

c
casual234

如何将VS Code中所有文件中的4个空格缩进为2个空格

打开文件搜索

打开正则表达式

输入:( {2})(?: {2})(\b|(?!=[,'";\.:\*\\\/\{\}\[\]\(\)]) ) 在搜索栏

在替换字段中输入:$1

如何将VS Code中所有文件中的2个空格缩进为4个空格

打开文件搜索

打开正则表达式

在搜索栏中输入:( {2})(\b|(?!=[,'";\.:\\*\\\/{\}\[\]\(\)]))

在替换字段中输入:$1$1

注意:您必须先打开 PERL Regex。这是如何:

打开设置并转到 JSON 文件

将以下内容添加到 JSON 文件“search.usePCRE2”:true

希望有人看到这个。


特别是对于 VS Code,还有 an extension 用于将 4 个空格转换为 2 个空格。
R
Reculos Gerbi Neto

要将所有现有文件和新文件的空间标识设置为 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
} 

这些天来,我使用 prettier.js 和 js 插件,因为它负责间距和其他重新对齐长线以及其他大多数事情。
C
Community

为那些在谷歌上搜索“更改 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


H
Hexodus

在首选项中设置缩进并不总是解决方案。大多数情况下,缩进是正确的,除非您碰巧从其他来源复制了一些代码代码,或者您的同事为您制作了一些东西并具有不同的设置。然后,您只想快速将缩进从 2 转换为 4 或反之。

That's what this vscode extension is doing for you

https://i.stack.imgur.com/SObpq.gif


P
PierreF

第 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 作为我的格式化程序,因为它有更多的样式设置。
s
shacker

问题:接受的答案实际上并没有修复当前文档中的缩进。

解决方案:运行 Format Document 以根据当前(新)设置重新处理文档。

问题:我项目中的 HTML 文档的类型是“Django HTML”而不是“HTML”,并且没有可用的格式化程序。

解决方案:将它们切换为语法“HTML”,格式化它们,然后切换回“Django HTML”。

问题:HTML 格式化程序不知道如何处理 Django 模板标签,并且撤消了我仔细应用的大部分嵌套。

解决方案:安装 Indent 4-2 扩展,它严格执行缩进,而不考虑当前的语言语法(这是我在这种情况下想要的)。


R
Rounak

我想将现有 HTML 文件的缩进从 4 个空格更改为 2 个空格。

我单击状态栏中的“空格:4”按钮,并在下一个对话框中将它们更改为两个。

我使用“vim”扩展名。如果没有 vim,我不知道如何重新缩进

为了重新缩进我当前的文件,我使用了这个:

gg

=

G

W
Wompinalong

补充:是的,您可以使用右下角的 UI 来配置空间设置。但是,如果您有未格式化为新间距的现有代码,则可以右键单击文件中的任意位置,然后单击Format Document。我花了一段时间才弄清楚这一点,直到我偶然发现了 this issue

Format Document menu


好的,我按照描述安装了 Ruby、Ruby Formatter 和 Rufo。从 2 个空格更改为 4 个空格。然后右键单击并格式化。对我来说什么都没有改变。
C
Carlos Soriano

对我来说是 docs-markdownDocs Authoring Pack。微软的许多模块再次相互混淆!禁用了扩展,现在可以再次使用😀


A
Adhil Muhammed

自动取消定位的问题是由于 VSCode 设置中的复选框处于活动状态。按着这些次序:

转到首选项转到设置搜索“编辑器:修剪自动空白”取消选中该框


A
Andres Riofrio

以下搜索和替换正则表达式将现有文件中每个缩进级别的空格数从 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


V
Vaska Raminashvili

首先,检查您是否安装了“EditorConfig for VS Code”。它覆盖了我的编辑器设置。我花了一整天的时间来纠正这个问题。

在项目中找到 .editorconfig 文件,并且在那里更改的文件将起作用。


M
M. Hamza Rajput

我喜欢这些缩进设置,您可以根据需要修改它们。

您可以通过键入 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"
}