Como mover o cursor para o nível de indentação correto sem sair do modo de inserção?

14

Por exemplo, eu tenho esse código JavaScript. O |caractere representa a posição do cursor e está em uma linha vazia.

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

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

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

    b();
}

Após a operação solicitada, o conteúdo ficaria assim:

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

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

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

    b();
}

O que estou pedindo é um comando de mapeamento.

Muito obrigado! :-)

silviubogan
fonte

Respostas:

16

Como o @jamessan mencionou, <C-f>irá recuar para o local correto no modo de inserção. Você também pode usar <C-t>e <C-d>para aumentar ou diminuir o nível de indução no modo de inserção.

No entanto, você pode evitar entrar nessa situação completamente usando uma das seguintes técnicas:

  • Use o/ Opara iniciar uma nova linha a partir de uma linha anterior
  • Use cc/ Spara editar a linha (leva em consideração a indentação)

Para obter mais ajuda, consulte:

:h cc
:h S
:h o
:h i_CTRL-T
:h i_CTRL-F
Peter Rincker
fonte
3
Além disso, <C-f>normalmente é definido em 'indentkeys'ou 'cinkeys'(dependendo de qual mecanismo de recuo está sendo usado), o que permitirá reinserir a linha atual para onde ela deve estar, no modo de inserção. Veja : help i_CTRL-F
jamessan
Observe que você precisa :set cindentou essas teclas não fazem nada!
JonnyRaa