如何在 Visual Studio 代码中设置 Python 语言特定的制表符间距?

How to set Python language specific tab spacing in Visual Studio Code?

将 VSCode 1.9.0 与 (donjayamanne) Python 0.5.8 扩展一起使用,是否可以提供 Python 特定的编辑器选项?

或者更一般地说,是否可以提供特定于语言的制表符间距和替换规则?比如Python应该是tab=4个空格(替换为空格),Ruby应该是tab=2个空格(替换)。其他语言往往有自己的观点。不过,我只看到一般

"editor.tabSize": 4,
"editor.insertSpaces": true,

选项。

我想也许有一个 "python.editor": { } 块或者一个 "python.editor.tabSize" 选项,但我找不到这样的参考,也没有成功猜到一个有效的名称。

Python should be tab=4 spaces (replaced as spaces), and Ruby should be tab=2 spaces...

安装编辑器配置插件。

ext install EditorConfig

使用 Python 和 Ruby 特定设置将 .editorconfig 文件添加到您的项目根目录:

[*.py]
indent_style = space
indent_size = 4

[*.rb]
indent_style = space
indent_size = 2

这些是其他支持的属性:

tab_width
end_of_line
insert_final_newline
trim_trailing_whitespace

另请参阅:

https://github.com/editorconfig/editorconfig-vscode

http://editorconfig.org/

我今天遇到了同样的问题。
这就是我修复它的方式。在 VSCode 中的 setting.json 中添加以下行:

"[python]": {
  "editor.insertSpaces": true,
  "editor.tabSize": 4  
}

它就像一个魅力。

  1. 编辑器:检测缩进 = false(默认 = true)
  2. 编辑器:插入空格 = true(默认)
  3. 编辑器:标签大小 = 4(默认)

对于仍然面临问题并发现默认答案无法解决您的问题的任何人,这里有一个基于 this discussion/issue on the vscode github.

的方法

问题很可能源于 vscode 及其扩展自行决定如何缩进代码这一事实。有些扩展不选择缩进,但其他扩展选择,更糟糕的是 vscode 似乎“记住”文件中的缩进。因此,曾经有一次错误的缩进,可以体验到建议的答案在该语言中不起作用。这是因为 vscode 也会尝试“检测缩进”。如果自动检测认为它必须以不符合您的用户设置的方式缩进,这会导致严重问题。幸运的是,除了接受的答案指定的值之外,修复只是通过将 "editor.detectIndentation" : false 添加到全局或语言设置来关闭它。

分步指南

  1. 使用 ctrl+shift+p 并输入“设置”
  2. 点击“打开设置”
  3. 将以下内容添加到您的 json 脚本中(如果后面跟着另一个字段,请记住字段需要以逗号结尾)
"[python]": {
        "editor.detectIndentation" : false,
        "editor.insertSpaces": true,
        "editor.tabSize": 4   
    }

将数字“4”更改为您希望用于缩进的空格数。

第一个定位设置

点击File > Preferences > Settings

第二次编辑设置

键入 settigns.py,然后单击 [JSON] 部分中的 Edit settings.json

第三次添加 pyton 配置

"[python]": {
  "editor.insertSpaces": true,
  "editor.tabSize": 4
}