如何在不退出插入模式的情况下将光标移动到正确的缩进级别?


14

例如,我有此JavaScript代码。该|字符代表光标位置,并且在空行上。

function a() {
    console.log("a");

    function b() {
        console.log("b");

        function c() {
            console.log("c");
        }
|
        c();
    }

    b();
}

完成请求的操作后,内容将如下所示:

function a() {
    console.log("a");

    function b() {
        console.log("b");

        function c() {
            console.log("c");
        }
        |
        c();
    }

    b();
}

我要的是一个映射命令。

非常感谢你! :-)

Answers:


16

如@jamessan所述,<C-f>将从插入模式缩进到正确的位置。您还可以使用<C-t><C-d>从插入模式增加或减少缩进级别。

但是,您可以使用以下一种技术来完全避免陷入这种情况:

  • 使用o/ O从上一行开始新行
  • 使用cc/ S编辑该行(考虑缩进)

有关更多帮助,请参见:

:h cc
:h S
:h o
:h i_CTRL-T
:h i_CTRL-F

3
另外,<C-f>通常在'indentkeys''cinkeys'(取决于所使用的缩进机制)中定义,这将允许您从插入模式将当前行重新缩进到应该的位置。参见:help i_CTRL-F
jamessan

注意您需要:set cindent或这些键什么也不做!
JonnyRaa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.