Vimの前に空の行、最後に別の空行、2行の間に新しい行を作成する方法は?

Vimの前に空の行、最後に別の空行、2行の間に新しい行を作成する方法は?

たとえば、次の行があります。

one line
another line
one more line
other line

しかし、その間に新しい行を追加したいと思います。ただし、前には空行があり、後には空行があります。

one line
another line

MY NEWLY inserted line;

one more line
other line

ご覧のとおり、前に空白行があり、MY NEWLY inserted line;後ろに空白行があります。

簡単な方法でどのように達成できますか?

o通常、、、、、ESCo使用ESCしますO。しかし、私はこれが最善の方法ではないと思います。ご存知の方を手伝ってください。ありがとうございます。

答え1

  • 「別の行」にカーソルを置きます。
  • によるとoEnter
  • タイプMY NEWLY inserted line
  • によるとEsco

または

  • 「別の行」にカーソルを置きます。
  • によると2、、oEsc
  • を押してO入力します。MY NEWLY inserted line

答え2

o+ の重複を避けるために、Esc以下があります。壊れていないプラグイン(これは私が記事で言及したことがあります。エマルジョン[私は答えました)、これは挿入モードに切り替えることなく空の行を挿入するための通常モードのマッピング(他のマッピングとベースの]マッピングも含む)を提供します。

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

返品:

。コマンドはすべての演算子マッピングで機能し、インストールされている場合>行ごとのマッピングでも機能します。vim 繰り返し

したがって、挿入モードを回避しながら、次のように複数の空白行を追加できます(たとえば、3つの空白行を使用します)。

3[<Space>

その後、挿入モードに入り、入力してください!

最初はこのマッピングがやや厄介で直感的ではないと思いましたが、今は一日に何度も使用して見逃しています。プラグインの他のマッピングとデフォルトの[マッピングを使用すると、] すべてが自然になります。

たとえば、現在の行を上記の[count]行と置き換えることができます[e(または上記の行をに置き換えることができます)。]eしたがって、いくつかの行を置き換えるには、ddjp「削除、1行下に移動してから下に移動」を実行するか、単に実行できます]e

答え3

another line(あなたの例では)後ろに何かを追加したい行に移動し、

  1. 新しい行を開くには押しますo
  2. 新しい行を入力する前にEnterもう一度押すと、空の行が挿入されます。
  3. ダブルクリックするとEnter行が終了し、入力した行の後に空白行が作成されます。

完了(Escape通常モードに戻るにはタップします)。

これはsedスクリプトに対応します。

/^another line$/ a\
\
MY NEWLY inserted line;\
\

またはed会議で

1;/^another line$/ a

MY NEWLY inserted line;

.

関連情報