Visual studio code 使空格起作用并看起来像VS代码中的选项卡

Visual studio code 使空格起作用并看起来像VS代码中的选项卡,visual-studio-code,vscode-settings,editorconfig,Visual Studio Code,Vscode Settings,Editorconfig,在用VS代码编写源文件时,如果源文件的样式为具有特定宽度的空格(可能由.editorconfig文件确定),如何强制VS代码将空格视为选项卡,而不重新格式化文件 例如,缩进宽度可能是4个空格,因此与其在编辑器中显示4个空格,不如看到一个制表符空格字符,宽度为4个空格。外观 你说vscode是: 在我的编辑器中显示4个空格 我想这意味着你会得到这些小小的点字符,就像这样 如果希望这些内容消失,使它们与选项卡更加一致,请进入VScode设置(JSON)并输入以下内容: "editor.renderW

在用VS代码编写源文件时,如果源文件的样式为具有特定宽度的空格(可能由.editorconfig文件确定),如何强制VS代码将空格视为选项卡,而不重新格式化文件


例如,缩进宽度可能是4个空格,因此与其在编辑器中显示4个空格,不如看到一个制表符空格字符,宽度为4个空格。

外观

你说vscode是:

在我的编辑器中显示4个空格

我想这意味着你会得到这些小小的点字符,就像这样

如果希望这些内容消失,使它们与选项卡更加一致,请进入VScode设置(JSON)并输入以下内容:

"editor.renderWhitespace": "selection"
假设其他所有内容都是默认值,则制表符和空格都应呈现为常规空白。但仅此一点并没有真正的帮助,因为它不允许您区分嵌套结构,也就是说,您不知道自己处于多少缩进级别

要解决这个问题,有两件事

  • (最小值)在用户设置中明确设置缩进参考线,这将在每个缩进级别渲染垂直线,无论文件使用的是制表符还是空格:
  • (可选额外功能)如果您想更进一步,可以尝试一些扩展,但我推荐的是。它有很多选择,但我有我的配置,所以在一定程度的缩进之后,它变得更令人讨厌,因为我把它视为一种代码气味,也就是说,如果可能的话,我喜欢最小化嵌套的数量
  • 执行所有这些操作的最终结果是,选项卡和空格的呈现方式完全相同,除非突出显示部分代码,否则无法区分它们之间的差异:


    行为

    为了使缩进行为更加一致,如果默认情况下尚未应用缩进,则应在设置中设置以下内容:

    "editor.detectIndentation": true,
    "editor.insertSpaces": true,
    "editor.useTabStops": true
    
    关于这一点:

    VS代码中的源文件,其样式为具有特定宽度的空格(可能由.editorconfig文件确定)

    我认为这是不可能的,或者至少不是天生的。您可以找到/编写一个扩展,该扩展可以基于tabsize进行检测,因为实际上有一个名为:

    "editor.tabSize": 4,
    
    不确定这是否有帮助,但您可以根据文件类型进行选择性设置覆盖,例如:

    "[yaml]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 2,
        "editor.autoIndent": "advanced"
    }
    

    VSCode 1.52(2020年11月)支持空间列表代码的选择方面,并且:

    如果您喜欢使用空格缩进代码,则有一个名为
    编辑器的新设置。stickyTabStops
    ,它使VS code处理前导空格中的光标移动类似于制表符


    实际上,您希望编辑器将空格转换为活动文件上的制表符,但在保存为空格时将其转换回。@marblewraithyes@marblewraith你知道怎么做吗?我有一些想法,我会把它分成两个不同的答案。很棒的东西!用箭头键导航怎么样?在这方面,我可以让空格像标签一样工作吗?(使用左箭头键和右箭头键时,光标应该跳到每个缩进级别)我认为这条线就是您要寻找的-
    "[yaml]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 2,
        "editor.autoIndent": "advanced"
    }