Vim:ビジュアルブロックモードで挿入する方法は?


145

Vimでビジュアルブロックモード(Ctrl-Vを押す)のときに挿入するにはどうすればよいですか?



1
答えの簡単な要約:ここでは答えを単純な形で示します。コメントが非常に多いため、このスレッドは溺死しています。1)Vimのバージョンで+ visualextraが有効になっているかどうかを確認するには、Vimで:verと入力します。2)最初に編集したいものにマークを付けて挿入し、次にI(大文字のi)を押します-小文字のiは機能しません。3)これを実行すると、最初の行に挿入するように見える可能性がありますが、完了したら、ESCキーとjキーを押すと、テキストが他の行にコピーされます。それが私のやり方です。
Zeth

回答:


202

これを試して

テキストのブロックを選択した後、Shift+ iまたは大文字を押しますI

小文字iは機能しません。

次に、必要なものを入力し、最後にすべての行に適用するには、Esc2回押します。




これが機能しない場合...

+visualextraVimのバージョンで有効になっているかどうかを確認します。

これを行うには:ver、機能のリストを入力してスクロールします。(フォーマットが変わっているため、それをコピーしてバッファーに貼り付け、インクリメンタル検索を実行することもできます。)

有効にすることはこの質問の範囲外ですが、どこかで見つけることができると思います。


13
忘れAずに!
jmdeldin 2012

42
また、テキストが複製される前に、エスケープを押して挿入モードを終了する必要があります。
Brandon Joyce

19
これが機能しないことを見た人はいますか?CentOSに変更されていないvimセットアップがあります。ctrl + vを押し、jaを数回押すと、カーソルが数行の最初の文字を強調表示します。Shift + iを押します。カーソルが最初の行の最初の文字に移動しますが、通常モードに戻ります。「a」を押すと文字が右に移動し、「-INSERT-」と表示されるので、これはわかっています。いくつかの文字を入力してエスケープを押すと、他の行には適用されません。
タイラーコリアー

2
@TylerCollier digitaloceanのUbuntu 14.04で問題が発生しています。解決策を見つけたらコメントしてください。
ザックバート

2
@ZacharyBurt Ubuntu 14.04とともにインストールされたデフォルトのvim(としてインストールvi)にはvisualextra機能が含まれていないため、ブロック挿入はそこで機能しません。sudo apt-get install vimよりフル機能のバージョンが導入され、visualextraアクティブになります。@TylerCollierこれは、CentOSインストールでも同じ問題である可能性がありvim --versionます。アクティブ化された機能の完全なリストを確認するには、の出力を確認してください。
ガブリエルグラント

40
  1. Ctrlキーを押しながらv //選択を開始
  2. Shiftキーを押しながらi //次にテキストを入力します
  3. esc escを押す// escを2回押す

を押した後ctrl + v、を押すjと現在の位置より下の行をすばやく選択でき、を押すと現在の位置よりk上の行をすばやく選択できます。またはエラーのあるshiftキーを使用して選択を行うこともできます。updown
tyler.frankenstein

1
すべての答えの中で、これは私のために働いた唯一のものです。私はbrewインストールを使用してMacにいます
Daniel Kaplan

私は簡単にできなかったこと年間、文句を言ってきた私は(のようなnsert Cのブロック選択でハンゲ)。だからそれは首都ですi、私は驚いています :normal iINPUT<CR>行頭での入力に使ってきました。これをたくさんありがとう!
TimVisée2018

Escキーを2回押す必要はないと思います。Escの後に何かを押すと、テキストが自動的に更新されます。そうでない場合は、0.5秒程度で実行されます。
Shahbaz

29

テキストのブロックを削除して置き換えたいというユースケースもあるかもしれません。

このような

Hello World
Hello World

「W」の前に視覚的なブロック選択を行い、Shift+ i-「Cool」と入力- ESC視覚的なブロック選択によって「World」を押してから削除できます。

または、両方の行で "World"をビジュアルブロック選択するだけのクールな方法です。入力cのためにchange。これでinsertモードに入りました。必要なものを挿入してヒットしESCます。どちらも少ないキーストロークで反映されます。

Hello Cool 
Hello Cool

最後のステップは、あなたがヒットしなければならない、私のために有用であるESCすべてのマークされた行は、あなたが入力する文字が表示されます、その後。
ウェッブ呂

素晴らしいもの、それは大きな助けになります
prosti

9

選択した列の前または後に新しいテキストを追加する場合:

  • Ctrl + Vを押す
  • 列を選択
  • Shift + iを押す
  • あなたのテキストを書きます
  • Escキーを押します
  • 「jj」を押す

2
タンク君、jj以下のすべての行に変更を伝播するためには、私が行方不明になった最後のビットでした!
kilogic

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