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


10

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

ここにシナリオがあります:テキストファイルに複数の行に同じ単語を挿入したいリストがあります。これはテキストの例です:

12.1アイテム1
12.2アイテム2
12.3アイテム3

ここで、下のアンダースコアで示される8番目の列を視覚的にブロックマークしDone、項目列を移動せずに空白の一部を置き換えるつもりです。

12.1 _アイテム1
12.2 _アイテム2
12.3 _アイテム3

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

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

回答:


18

4列を選んでヒットしてみませんcか?

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

また、あなたは使うことができます:h normal

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

1
これはで機能しDoneますが、何か他のものを書きたい場合は、可能であれば文字を数えないようにしたいと思います。
トール

1
:normでは、あなたの友達です。
romainl 2012

はい、2番目のソリューションは、便利なマッピングに使用できます。ありがとうございました。
2012

1

ビジュアルブロック内で置き換えたい場合は、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


素敵なプラグイン、私はそれを使用します:-)。しかし、それを使用して任意の列を置き換えるにはどうすればよいですか?
2015年

右、ビジュアルブロックの幅を任意の幅の列に一致するようにすばやく設定するという問題が依然としてあります。私は通常、<回数>やるwか、eすぐにいくつかの列を選択し、その後で調整hl
クリスチャンロング
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.