Ganti teks saat dalam mode blok visual

10

Mungkin saya mencari dengan cara yang salah, tetapi saya gagal menemukan cara melakukan ini.

Berikut skenarionya: Saya memiliki daftar di file teks di mana saya ingin memasukkan kata yang sama pada banyak baris, berikut ini contoh teks:

12.1 Item1
12.2 Item2
12.3 Item3

Sekarang saya blok visual menandai kolom ke-8, ditunjukkan dengan garis bawah di bawah ini, dan bermaksud untuk mengganti bagian dari spasi dengan Donetanpa memindahkan kolom item:

12.1 _ Item1
12.2 _ Item2
12.3 _ Item3

Saya berharap bisa masuk ke mode ganti, tetapi saya hanya bisa memasukkan insert ( I), append ( A), atau ubah-mode ( c). Mode perubahan mendekati apa yang saya inginkan: jika saya tahu panjang kata blok dapat diatur ke lebar yang sama.

Apakah ada sesuatu yang saya lewatkan di sini?

Thor
sumber

Jawaban:

18

Mengapa Anda tidak memilih 4 kolom dan tekan c?

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

Anda juga dapat menggunakan :h normal:

V
2j
:'<,'>norm 7lRDone
<Esc>
romainl
sumber
1
Itu berhasil Done, tetapi bagaimana jika saya ingin menulis sesuatu yang lain, saya ingin bebas dari penghitungan karakter, jika memungkinkan.
Thor
1
:normadalah temanmu, kalau begitu.
romainl
Ya solusi kedua dapat digunakan untuk pemetaan yang nyaman. Terima kasih.
Thor
1

Jika Anda ingin mengganti dalam blok visual, Anda dapat menggunakan vis.vimplugin .

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

Untuk memasang:

Unduh vis.vba.gz dari http://www.drchip.org/astronaut/vim/index.html#VIS

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

# Source the open file.
:so %

# Quit Vim
:q

Setelah diinstal:

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

Bahkan lebih baik, Anda dapat melakukan perintah Ex pada blok visual, bukan hanya substitusi. Sebagai contoh :B !sort.

Christian Long
sumber
Plugin yang bagus, saya akan menggunakannya :-). Tetapi bagaimana saya bisa menggunakannya untuk mengganti kolom yang berubah-ubah?
Thor
Benar, Anda masih memiliki masalah pengaturan cepat lebar blok visual agar sesuai dengan kolom lebar sewenang-wenang Anda. Saya biasanya melakukan <count> watau euntuk memilih beberapa kolom dengan cepat, kemudian menyesuaikan dengan hatau l.
Christian Long