Comment déplacer le curseur au niveau d'indentation correct sans quitter le mode d'insertion?

14

Par exemple, j'ai ce code JavaScript. Le |caractère représente la position du curseur et se trouve sur une ligne vide.

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

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

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

    b();
}

Après l'opération demandée, le contenu ressemblerait à ceci:

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

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

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

    b();
}

Ce que je demande, c'est une commande de mappage.

Merci beaucoup! :-)

silviubogan
la source

Réponses:

16

Comme @jamessan l'a mentionné, indentera <C-f>au bon endroit à partir du mode d'insertion. Vous pouvez également utiliser <C-t>et <C-d>pour augmenter ou diminuer le niveau de retrait à partir du mode d'insertion.

Cependant, vous pourrez peut-être éviter d'entrer complètement dans cette situation en utilisant l'une des techniques suivantes:

  • Utilisez o/ Opour démarrer une nouvelle ligne à partir d'une ligne précédente
  • Utilisez cc/ Spour modifier la ligne (prend en compte l'indentation)

Pour plus d'aide, voir:

:h cc
:h S
:h o
:h i_CTRL-T
:h i_CTRL-F
Peter Rincker
la source
3
En outre, <C-f>est généralement défini dans 'indentkeys'ou 'cinkeys'(selon le mécanisme de retrait utilisé), ce qui vous permettra de réindenter la ligne actuelle à l'endroit où elle devrait être, à partir du mode d'insertion. Voir : help i_CTRL-F
jamessan
Notez que vous devez :set cindentou ces touches ne font rien!
JonnyRaa