使用VSCode中的选项卡保留缩进或突出的间距

Hos*_*ork 8 auto-indent visual-studio-code

在VSCode中,当我有:

    /*
     * Comment
     */
Run Code Online (Sandbox Code Playgroud)

如果我选择它并点击标签,我会得到:

        /*
        * Comment
        */
Run Code Online (Sandbox Code Playgroud)

如果相反我打了换档,我得到:

/*
    * Comment
    */
Run Code Online (Sandbox Code Playgroud)

同样的情况,与Ctrl-]Ctrl-[ (如果这些都应该有所作为)

我希望关闭autoIndent会阻止这个,但没有骰子.我还关闭了JSON配置中的C++格式:

{
    "editor.autoIndent": false,
    "editor.detectIndentation": false,
    "C_Cpp.formatting": "Disabled"
}
Run Code Online (Sandbox Code Playgroud)

有一个扩展,一次将文本移动一个字符,这是一种概念验证,你可以用这样的东西覆盖你的tab键.但似乎您不需要扩展来禁用此格式.

editor.autoIndent: false应该做我想做的,只是坏了?

更新:我还在VSCode GitHub上提出了这个问题

Tee*_*Kea 4

如果您将Tab大小设置为1,它将执行与您引用的扩展名相同的工作。

您可以通过单击右下角来设置Tab或大小:Space

更改制表符/空格大小

点击Spaces:4。然后,选择“使用空格缩进”“使用制表符缩进”并选择大小1

更新:

我找到了一种完全满足您的要求的方法(尽管是通过扩展)。选择制表符/空格大小后1,安装并加载多命令扩展以执行 1 空格缩进“四次”。然后,转到settings.json(文件 > 首选项 > 设置)并添加以下两个命令:

{
    "macros": {
        "tab4times": [
            "tab",
            "tab",
            "tab",
            "tab"
        ],
        "shifttab4times": [
            "outdent",
            "outdent",
            "outdent",
            "outdent"
        ]
    }    
}
Run Code Online (Sandbox Code Playgroud)

然后,在keybindings.json文件中(CTRL+ P,然后键入keybindings.json),修改CTRL+]CTRL+[键以执行新创建的命令:

[
    {
        "key": "ctrl+]",
        "command": "macros.tab4times",
        "when": "editorTextFocus && !editorReadonly"
    },
    { 
        "key": "ctrl+[",
        "command": "macros.shifttab4times",
        "when": "editorTextFocus && !editorReadonly"
    }
]
Run Code Online (Sandbox Code Playgroud)

保存这些配置后,转到您的文本。现在按CTRL+]CTRL+分别[查看您想要的缩进外缩行为。

希望能帮助到你。