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! :-)

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.