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.