通常モード(挿入モードまたはコマンドラインモードに入る)を終了せずに、(カーソルの位置で)行を2行に分割したいと思います。これは可能ですか?
現在、目的の場所に移動し、「i」を押して挿入モードに入り、「Enter」を押して行を2つに分割し、「esc」を押して通常モードに戻ります。
最大行長を設定したり、構文などを実行したりするつもりはありません。通常モードを終了せずに、1行を2行に分割したいだけです。 「J」は、カーソルが置かれている行をその下の行に結合します。これは便利です。逆に、1つのコマンドで1行を2つに分割したい。
これを試して:
:nnoremap <NL> i<CR><ESC>
次に、行を分割するときはいつでもCtrl-Jを押します。
単一のキーコマンドはわかりませんが、「r」を実行してから「Enter」を実行して行を分割することがよくあります。
「r」は、挿入モードに入らずに、カーソルの下の現在の文字を置き換えます。文字を置き換えたくない場合、これはあなたが望むものではないかもしれません...
カーソルを所定の位置に置き、...
r<Enter>
他の回答と同様ですが、現在の文字を置き換えません。
R<enter>
再マップは必要ありません。
私の知る限り、これは挿入モードに入らないと不可能です。ただし、次のようなマクロを使用できます(Zを使用するキーに置き換えます)
nmap Z i<cr><esc>k$
基本的に、これはキー「Z」をマップして挿入モード「i」に入り、キャリッジリターン「<cr>
」を挿入し、挿入モード「<esc>
」を終了し、行「k」を上って最後に行の終わり '$'
この重複した質問によると: Vimで挿入モードに入らずにカーソルがある場所に改行を挿入するにはどうすればよいですか?
Vim内から、次のように入力します。
:map g i[Ctrl+V][Enter][Ctrl+V][Esc][Enter]
これにより、GキーがマクロIにマップされます[Enter] [Escape]
録音が使えます。
qa
と入力して、レジスタa
への記録を開始します(必要に応じて、a
以外の別のレジスタを使用できます)。i
(挿入モードに切り替えます)と入力します。 Return (改行を挿入)、 escape (挿入モードを終了します)、q
(記録を終了します。)これで、@a
(a
は録音を開始したときに使用したレジスタ番号)と入力してこの一連のキーを呼び出すことができます。カーソルを移動して改行を挿入し、次のように入力します。 @a
。