web-dev-qa-db-ja.com

ビジュアルブロックモードのときにテキストを置き換える

間違った方法で検索しているのかもしれませんが、その方法を見つけることができませんでした。

これがシナリオです。テキストファイルにリストがあり、同じWordを複数の行に挿入したい場合、テキストの例を次に示します。

 12.1 Item1 
 12.2 Item2 
 12.3 Item3 

次に、下にアンダースコアで示されている8番目の列を視覚的にブロックマークし、アイテムの列を移動せずに空白の一部をDoneに置き換える予定です。

 12.1 _ Item1 
 12.2 _ Item2 
 12.3 _ Item3 

置換モードに入ることができると思っていましたが、挿入(I)、追加(A)、または変更モード(c)しか入力できません。変更モードは、私が望むものに近づきます。Wordの長さがわかっている場合は、ブロックを同じ幅に設定できます。

ここで見逃しているものはありますか?

10
Thor

4列を選択してcを押してみませんか?

<C-v>
2j
3l
cDone
<Esc>

また、:h normalを使用することもできます。

V
2j
:'<,'>norm 7lRDone
<Esc>
18
romainl

ビジュアルブロック内で置換する場合は、 vis.vimプラグイン

http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block

インストールするには:

http://www.drchip.org/astronaut/vim/index.html#VIS からvis.vba.gzをダウンロードします

# Open vis.vba.gz in Vim 7.1 or later.
vim vis.vba.gz

# Source the open file.
:so %

# Quit Vim
:q

インストール後:

ctrl-v to enter visual-block mode
Move to select the block you want
:B s/pattern/newtext/

さらに、置換だけでなく、ビジュアルブロックに対して任意のExコマンドを実行できます。例えば ​​:B !sort

1
Christian Long