19

コードを編集している間、私は常にこの機能が必要です。現在の行の後に新しい行を作成し、カーソルを新しい行に移動して(現在のインデントを保存します!)、通常モードのままにします。例(█がカーソルであると仮定):

function a() {
    foon█tion()
}

コマンドを入力した後、次のようにする必要があります。

function a() {
    foonction()
    █
}

たとえば、<Enter><Esc>行末にカーソルを置いて挿入モードで押すと、同じ効果が得られます。このoコマンドも同様に機能しますが、挿入モードを終了するとインデントが削除されます。したがって、1行下に挿入するには、キーを1回押す必要があります。

inb4 nmap:そのようなことを行うためのコマンドをマップする方法を知っていますが、これを行うための標準的な方法があるかどうか疑問に思っています。

4

2 に答える 2

26

また、コンボを使用することができます<C-o> o

于 2012-08-08T20:09:53.617 に答える
24

そのようなキーはありませんが、4つのキーストロークでこれを行うことができます(インデントなし)。:pu_<Enter>

これはvimのよくある質問です。答えはExコマンドを使用すること:putです。

12.15。挿入モードに入らずに、現在の行の上/下に空白行を挿入するにはどうすればよいですか?

「:put」exコマンドを使用して、空白行を挿入できます。たとえば、

:put =''
:put! =''

詳細については、:help:putを参照してください。

:put指定されたレジスタのテキストを現在の行の後に配置し、通常モードのままにします。:put!現在の行の上の行にテキストを配置します。

上記の例では、expressionレジスタ=を使用して空の文字列をputコマンドに送信しています。vimのブラックホールレジスタを使用してこれを削減できます_:put _

最後に、これは次のように省略できます::pu_<Enter>および:pu!_<Enter>

参照::help registers

最後に、これはTimPopeの障害のないプラグインの機能でもあることに注意してください。

障害のないREADMEから:

線方向のマッピングがあります。カーソル行の前後に改行[<Space>を追加します。現在の行をその上または下の行と交換します。]<Space>[e]e

于 2012-07-22T21:21:16.857 に答える