行のグループの最後にテキストを挿入するにはどうすればよいですか?


16

テキストのブロックがあったとしましょう...

Lorem ipsum
Lorem ipsum dolor
Lorem ipsum dolor sit
Lorem ipsum dolor sit amet

...そして.各行の最後にを挿入したかった。これを達成するための最良のアプローチは何でしょうか?

回答:


12

テキストを複数の行に追加するには、次の手順を実行します。

  • <c-V> -ビジュアルブロックモードに入ります。
  • j/ kを使用して行を選択します。
  • $ -カーソルを最後の文字に移動します。
  • A -最後の文字の後に挿入モードに入ります。
  • 目的のテキストを挿入します。
  • <Esc> -挿入モードを終了し、ブロックの追加を終了します。

:norm選択後の書き込みと比較すると、キーを押す回数はさらに少なくなりますが、これを使用する本当の理由は、このタイプの変更に対してVisual Blockモードで作業する方が本能的だからです。


テキストの列の貼り付けと組み合わせると非常に便利です。
ポールルージュ

8

最初の行に入力するだけです: 4:norm A.

4そして:あなたのための範囲を作成し、norm A.各ラインにドットを追加

長い段落の別の解決策は次のとおりです。 Vip<C-v>$A.<Esc>

最初のステップは、で段落を選択することでVip、あなたは視覚的なブロックモードに変更し、各ラインの末尾にカーソルを移動し$、その後、追加.して、各ラインにA.として通常モードになった<Esc>各行に適用される変更を確認します。


この:Aコマンドは何ですか?経由でそれを見つけることができませんでした:h :A
ピーターリンカー

私の悪い。実際、答えをテストしませんでした。私はそれを更新しています。それはちょうど@Kritixi Lhitosの答えのような通常のコマンドを使用する必要があります
rbernabe

2文字未満4:norm A.になる4:s/$/.
フィリポス

3

最初にV、を使用して視覚的に選択し、次に移動キーを使用してテキスト全体を選択できます(または、テキストが厳密に段落である場合は、[最初の行から]実行できますV})。を入力し:ます。これ:'<,'>により、コマンドラインのようなものが表示されます。

:'<'>normal A.

これはnormal A.、選択した行で実行されます。通常モードのキーストロークとしてnormal A.実行さA.れます。これにより、選択した各行の末尾にAa .が追加されます。


3

すべての行の最後にドットを追加する場合:

:%norm A.

または、検索と置換を使用できます:

:%s/$/./

%はファイル全体、$は行末です


@ vim.ryan全体ではなく、ファイルのテキストのブロックを求めたので、 :1,4s/$/./ ライン4を含めて1上のドットで最後の文字に置き換えます。
rjt

1

もう少し一般的にするために、マクロを1行に記録してから、視覚的に選択した範囲内の各行で再生することができます。

マクロをレジスタ(この例ではqレジスタ)に記録します。

qqA.<Esc>q

次に、操作する行を視覚的に選択できます。

Vip

そして、各行でマクロを再生します(範囲は自動入力されます):

:'<,'>norm @q
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.