Apa gunanya mode ganti Virtual di Vim?

9

Bantuan mengatakan bahwa perintah mode ganti virtual di Vim gr& GRganti karakter di layar dan bukan di file.

:help Virtual-Replace-mode

Saya memahami ini sebagai sesuatu seperti mengubah karakter di layar tetapi tidak di buffer itu sendiri. Apakah itu benar? Tampaknya salah.

Saya dapat menggunakan penjelasan dan mungkin skenario atau contoh di mana fitur ini relevan.

Sri Kadimisetty
sumber

Jawaban:

9

Dalam Virtual-Replace-Mode Buffer lebih sulit diperbaiki ke posisi asalnya.

1. Hello World
         ^ Cursor
2. I like cheese
3. And beer

Saat memasuki mode ganti normal dan menekan Internet<CR>And othersbuffer baru akan seperti ini:

1. Hello Internet
2. And others
3. I like cheese
4. And beer

Ketika melakukan hal yang sama di Virtual-Ganti hasilnya akan

1. Hello Internet
2. And othersese
3. And beer

Contoh lain (tabstop = 2; sts = 0):

1. 012345678901234567890
2. Hello beautiful World
         ^ Cursor

Tombol yang ditekan: <Tab><Tab>

Ganti-Mode hasil:

1. 012345678901234567890
2. Hello     autiful World

Hasil Virtual-Replace-Mode:

1. 012345678901234567890
2. Hello     tiful World

Karena dalam mode Ganti penggantian dilakukan char by char, di mana Tabsatu char, tidak peduli berapa banyak karakter yang ditampilkan. Dalam Virtual-Replace-Mode panjang yang terlihat dari Tab( :h 'ts', :h 'sts') digunakan untuk mengganti karakter.

Krissi
sumber
(Apakah ada karakter yang dimakan oleh format komentar, beberapa string yang dikutip terlihat seperti teks yang terlewat, bagi saya). Bagaimanapun, paragraf terakhir sangat membantu. Saya cukup yakin saya mengerti sekarang :) Terima kasih banyak @krissi!
Sri Kadimisetty