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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.