【问题标题】:VSCode: different tab size between save and formatVSCode:保存和格式之间的标签大小不同
【发布时间】:2021-09-29 16:23:43
【问题描述】:

我已将制表符设置为空格,并将制表符宽度设置为 2 个。当我明确要求 vscode 重新格式化我的代码(javascript)时,它完全符合我的预期。当我在代码中创建新行时,它也会自动缩进 2 个空格。

但是,当我(手动或自动)保存时,代码会重新格式化为 4 个空格!!!

yaml 不这样做。

我相信我使用的更漂亮(因为它在状态栏中这么说)离它说的 Spaces: 2 有点距离。在我的 settings.json 中有这个:"editor.tabSize": 2。我也有这个漂亮的小东西:

"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },

我认为这意味着它使用更漂亮。它为 yaml 记录了相同的格式化程序(事实上,几乎所有其他内容)。

有人可以告诉我如何在不失去自动保存优势的情况下停止这种烦人的行为吗?

【问题讨论】:

    标签: visual-studio-code tabs formatting


    【解决方案1】:
    1. 请查看您的项目中是否存在.editorconfig
    • 如果是这种情况,请编辑文件(请参阅https://editorconfig.org/),或者如果它是共享项目,您可以与作者讨论。例如:
    [*.js]
    indent_style = space
    indent_size = 2
    
    • 或完全关闭.editorconfig 支持:
    "prettier.useEditorConfig": false
    
    1. 不使用.editorconfig,我无法重复您的问题(即tabSize 配置= 2,重新格式化为4)。 但是解决方法是:
    "editor.formatOnSave": false
    

    甚至仅限于javascript

    "[javascript]": { "editor.formatOnSave": false }
    

    这将保留自动保存功能,但跳过自动格式化。

    1. 总结相关选项:
    "editor.tabSize":
    "editor.detectIndentation":
    "editor.formatOnSave":
    "prettier.tabWidth":
    "prettier.useEditorConfig":
    "prettier.useTabs":
    

    【讨论】:

      【解决方案2】:

      像这样禁用缩进检测

      "editor.detectIndentation": false.

      也用

      "editor.formatOnSave": true

      "prettier.tabWidth": 2,

      【讨论】:

      • 这完全没有区别,抱歉
      • @SoftwareEngineer 我已经更新了我的答案,请查看
      • 试过了,不管有没有完全重启,但它仍然没有任何区别。谢谢。
      • 使用"editor.detectIndentation": false,它对我有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      相关资源
      最近更新 更多