挿入モードを終了せずにカーソルを正しいインデントレベルに移動する方法は?


14

たとえば、このJavaScriptコードがあります。|文字はカーソル位置を表し、それが空行です。

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

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

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

    b();
}

要求された操作の後、内容は次のようになります。

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

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

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

    b();
}

私が求めているのはマッピングコマンドです。

どうもありがとうございました! :-)

回答:


16

@jamessanが述べたように、<C-f>挿入モードから正しい場所にインデントします。<C-t>および<C-d>を使用して、挿入モードからインデントレベルを増減することもできます。

ただし、次の方法のいずれかを使用することにより、そのような状況に完全に陥ることを回避できる場合があります。

  • o/ Oを使用して、前の行から新しい行を開始します
  • 使用cc/ Sライン(考慮インデントを取る)を編集します

詳細については、以下を参照してください。

:h cc
:h S
:h o
:h i_CTRL-T
:h i_CTRL-F

3
また、<C-f>通常、'indentkeys'または'cinkeys'(どのインデントメカニズムが使用されているかに応じて)で定義され、現在の行を挿入モードから現在の行にインデントし直します。:help i_CTRL-F
jamessan

あなたがする必要があることに注意してください、:set cindentまたはこれらのキーは何もしません!
ジョニーラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.