【问题标题】:Make spaces act and look like tabs in VS Code让空格像 VS Code 中的选项卡一样起作用
【发布时间】:2020-06-08 16:31:51
【问题描述】:

在 VS Code 中编写具有特定宽度(可能由 .editorconfig 文件确定)的空格样式的源文件时,如何强制 VS Code 将空格视为制表符而不重新格式化文件?

例如,缩进宽度可能是 4 个空格,所以与其在我的编辑器中显示 4 个空格,我宁愿看到一个宽度为 4 个空格的制表符空格字符。

【问题讨论】:

  • 本质上您希望编辑器将空格转换为活动文件上的制表符,但在保存为空格时转换回来。
  • @marblewraith 是的
  • @marblewraith 你知道怎么做吗?
  • 我有一些想法,我会分成 2 个单独的答案。

标签: visual-studio-code vscode-settings editorconfig


【解决方案1】:

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

Sticky Tab Stops when indenting with Spaces

如果你喜欢用空格缩进你的代码,有一个名为 editor.stickyTabStops 的新设置,它使 VS Code 将光标移动在前导空格中处理为类似于制表符。

【讨论】:

    【解决方案2】:

    行为

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

    "editor.detectIndentation": true,
    "editor.insertSpaces": true,
    "editor.useTabStops": true
    

    至于这个:

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

    我认为这是不可能的,或者至少在本地是不可能的。您也许可以找到/编写一个可以根据 tabsize 进行检测的扩展,因为实际上有一个名为:

    "editor.tabSize": 4,
    

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

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

    【讨论】:

      【解决方案3】:

      外观

      你说的 vscode 是:

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

      我认为这意味着你会像这样····

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

      "editor.renderWhitespace": "selection"
      

      假设其他一切都是默认的,制表符和空格都应该呈现为常规空格。但仅此一点并没有真正的帮助,因为它不允许您区分嵌套结构,即您无法判断您处于多少级缩进。

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

      1. (最小)在您的用户设置中明确设置缩进指南,这将在每个缩进级别呈现垂直线,无论文件使用制表符还是空格:
      "editor.renderIndentGuides": true
      
      1. (可选额外)如果您想更进一步,可以尝试一些扩展,但我推荐的是indent-rainbow。它有很多选择,但我已经配置好了,所以在一定程度的缩进之后它变得更加令人讨厌,因为我把它当作代码气味,即我喜欢尽可能减少我的嵌套量。

      这样做的最终结果是制表符和空格的呈现方式完全相同,除非突出显示部分代码,否则您无法区分:

      【讨论】:

      • 好东西!用箭头键导航怎么样?在这方面,我也可以让空格像标签一样吗? (使用左右箭头键时,光标应跳转到每个缩进级别)
      • 我认为这个帖子就是你要找的 - github.com/microsoft/vscode/issues/2798
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 2022-11-02
      相关资源
      最近更新 更多