代码之家  ›  专栏  ›  技术社区  ›  Alex Paramonov

vs代码:用制表符缩进单行

  •  3
  • Alex Paramonov  · 技术社区  · 6 年前

    我使用Emacs已经很长时间了,现在我想切换到类似于vs代码的现代模式。我在Emacs中真正使用的一件事是使用制表键自动缩进:

    http://www.gnu.org/software/emacs/manual/html_node/emacs/Indentation.html

    打开 tab-always-indent

    我希望vs代码在 Tab 是按的,但是像Emacs一样自动缩进一行,我该如何配置?

    以下是javascript中的一个示例:

    function foo(){
        }  // Press Tab here
    

    在Emacs中,结果将是(我希望在vs代码中相同):

    function foo(){
    }
    

    所以括号将转到行的开头,但在vs代码中的结果将是

    function foo(){
            } // second tab added
    

    Emacs根据当前文本模式(Python/JS/C++/任意)进行缩进。

    我知道我可以选择一个代码区域并使用“格式选择”或在保存时自动格式化。

    1 回复  |  直到 6 年前
        1
  •  1
  •   dwelle    6 年前

    这只能部分回答你的问题——制造 Tab 缩进行---它不会按您想要的方式规范化缩进。但是,您可以将它设置为其他一些命令,这些命令可以执行您想要的操作。

    加上它,但打破了一些情况。

    {
        "key": "tab",
        "command": "editor.action.indentLines",
        "when": "editorTextFocus && !suggestWidgetVisible && !inSnippetMode"
    }
    

    如果它导致违约行为:

    • 使用时 标签 确认IntelliSense对话框(自动完成)
    • 跳到片段占位符时

    它会破坏什么:

    • 紧迫的 标签 缩进到 level of current block
    • 无法在写入代码段前缀后立即展开代码段(需要等待IntelliSense打开)
    • 也许还有别的…