Visual Studio Code - 将空格转换为制表符

Posted

技术标签:

【中文标题】Visual Studio Code - 将空格转换为制表符【英文标题】:Visual Studio Code - Convert spaces to tabs 【发布时间】:2016-08-17 07:31:22 【问题描述】:

我的项目中有 TypeScript 和 html 文件,两个文件中的选项卡都转换为空格。

我想关闭自动转换并确保我的项目只有标签。

编辑:

使用此设置,它似乎适用于 HTML 文件,但不适用于 TypeScript 文件。


  "editor.insertSpaces": false

【问题讨论】:

为什么 IDE 默认将制表符转换为空格,这超出了我的理解。如果我想要空格,我会为每个缩进点按空格键 4 次……就像野人一样。 【参考方案1】:

如果您使用的是.sass 文件,请将其设置为false,它会给您Expected tabs, was spaces 错误:

"editor.detectIndentation": false

...然后选择您的代码块并按tab 键将其缩进,然后按shift + tab 键将其缩进。

【讨论】:

【参考方案2】:

如果您想将大量文件中的制表符更改为空格,但又不想单独打开它们,我发现仅使用 查找和替换 也同样有效最左侧工具栏中的选项。

在第一个框中 (Find),从源代码中复制并粘贴一个选项卡。

在第二个框中 (Replace),输入您希望使用的空格数(即 2 或 4)。

如果您按下... 按钮,您可以指定要包含或忽略的目录(即src/Data/Json)。

最后,检查结果预览并按全部替换。工作区中的所有文件都可能受到影响。

【讨论】:

【参考方案3】:

  "editor.insertSpaces": true

True 为我工作。

【讨论】:

【参考方案4】:
    突出显示您的代码(在文件中) 单击应用程序窗口右下角的 Tab Size 选择适当的将缩进转换为制表符

【讨论】:

【参考方案5】:

从官方 vscode 设置中检查:

// Controls whether `editor.tabSize#` and `#editor.insertSpaces` will be automatically detected when a file is opened based on the file contents.
"editor.detectIndentation": true,

// The number of spaces a tab is equal to. This setting is overridden based on the file contents when `editor.detectIndentation` is on.
"editor.tabSize": 4,

// Config the editor that making the "space" instead of "tab"
"editor.insertSpaces": true,

// Configure editor settings to be overridden for [html] language.
"[html]": 
    "editor.insertSpaces": true,
    "editor.tabSize": 2,
    "editor.autoIndent": false

【讨论】:

【参考方案6】:

File -> Preferences -> Settings 或者直接按 Ctrl + , 并搜索 空格,然后停用此选项:

我必须重新打开文件才能使更改生效。

【讨论】:

【参考方案7】:

就我而言,问题是在一月更新后安装了 JS-CSS-HTML Formatter 扩展。默认的indent_char 属性是空格。我卸载了它,奇怪的行为停止了。

【讨论】:

哦,是的,这对我来说是真正的问题。花大量时间修补 VS 代码中的设置。终于禁用这个扩展解决了这个问题。【参考方案8】:

.vscode/settings.json中有3个选项:

// The number of spaces a tab is equal to.
"editor.tabSize": 4,

// Insert spaces when pressing Tab.
"editor.insertSpaces": true,

// When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
"editor.detectIndentation": true

editor.detectIndentation 从您的文件中检测到它,您必须禁用它。 如果没有帮助,请检查您是否没有更高优先级的设置。 例如,当您将其保存到用户设置时,它可能会被项目文件夹中的工作区设置覆盖。

更新:

您可以打开文件 » 首选项 » 设置或使用快捷方式:

CTRL+, (Windows、Linux)

+, (Mac)

更新:

现在您可以选择手动编辑这些选项。 点击编辑器右下角的选择器Spaces:4

如果要将现有的 ws 转换为选项卡,请从 Marketplace 安装扩展程序编辑: 要将现有缩进从空格转换为制表符,请点击 Ctrl+Shift +P 并输入:

>Convert indentation to Tabs

这将根据定义的选项卡设置更改文档的缩进。

【讨论】:

如何对工作区中的所有文件运行此命令。 如何在 VSCode 中为我的所有文件和项目永久使用>Convert indentation to Tabs @FäridAlijani, @ VijenderKumar 我认为使用 VS Code 是不可能的【参考方案9】:

如果你想使用制表符而不是空格

试试这个:

    转到 FilePreferencesSettings 或直接按 Ctrl + , 在顶部的搜索设置栏中插入editor.insertSpaces 您会看到类似这样的内容:Editor: Insert Spaces,并且可能会被选中。只需取消选中它,如下图所示

    重新加载 Visual Studio 代码(按 F1 ➤ 输入 reload window ➤ 按 Enter

如果它不起作用,试试这个:

可能是因为安装了插件JS-CSS-HTML Formatter

(您可以前往 FilePreferencesExtensions 或直接按 Ctrl + Shift + X,在Enabled列表中你会发现JS-CSS-HTML Formatter

如果是这样你可以修改这个插件:

    F1 ➤ 输入 Formatter config ➤ 按 Enter(它将打开文件 formatter.json) 像这样修改文件:
 4|    "indent_size": 1,
 5|    "indent_char": "\t"
——|
24|    "indent_size": 1,
25|    "indentCharacter": "\t",
26|    "indent_char": "\t",
——|
34|    "indent_size": 1,
35|    "indent_char": "\t",
36|    "indent_character": "\t"
    保存(转到 FileSave 或直接按 Ctrl + S) 重新加载 Visual Studio 代码(按 F1 ➤ 输入 reload window ➤ 按 Enter)

【讨论】:

如果你想要空格而不是制表符,修改formatter.json文件:在任何引号中放一个空格而不是\t(所以"\t"变成" " ),然后将 4 放在您看到 1 的位置。所以你来可能是这样的"indent_size": 4, "indent_char": " " "indent_size": 4, "indentCharacter": " ", "indent_char": " ", "indent_size": 4, "indent_char": " ", "indent_character": " " RELOAD WINDOW 步骤是我所缺少的。令人沮丧的是,我已经完成了 3 次检查框和摆弄设置的过程而没有进行任何更改,而我所要做的就是重新加载窗口。感谢您的提示!【参考方案10】:

Ctrl+Shift+P,然后“将缩进转换为制表符”

【讨论】:

是否可以为选择而不是整个文件执行此操作? 是否可以为整个 repo 而不仅仅是一个文件执行此操作? @dbrane 是的。如果您突出显示文件中的代码块,则转换仅适用于所选内容。顺便说一句,在 Mac 上,组合键是 ⌥ + P(alt/option + P)。【参考方案11】:

以下设置对我来说效果很好,

"editor.insertSpaces": false,
"editor.formatOnSave": true, // only if you want auto fomattting on saving the file
"editor.detectIndentation": false

以上设置将反映并应用于每个文件。您无需手动缩进/格式化每个文件。

【讨论】:

【参考方案12】:

要更改选项卡设置,请单击 vscode 窗口右下角状态栏中 Ln/Col 文本右侧的文本区域。

名称可以是Tab SizeSpaces

将弹出一个菜单,其中包含所有可用的操作和设置。

【讨论】:

对我来说,这只会更改我当前正在查看的特定文件的这些设置。项目中的其他文件保留其旧设置。你会如何设置它? 如果需要,我通常会一次替换所有文件,方法是在项目中搜索简单的正则表达式 `4` 并替换为 \t(用于制表符)。通常还要浏览匹配项,以确保不会像多行字符串文字等那样破坏任何内容。显然应用这些设置,以便您的新缩进也是所需的字符!

以上是关于Visual Studio Code - 将空格转换为制表符的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript – Visual Studio Code – 编译后不输出 2 个空格选项卡

windows通过Visual Studio Code中配置GO开发环境(转)

在 Visual Studio Code 中设置 Cobol 制表符/缩进

在 Visual Studio Code 中显示空白字符

如何禁用我的 HTML 类的 Visual Studio Code 自动修剪空白?

Visual Studio Code 选项卡键不插入选项卡