Zamień tekst w trybie bloku wizualnego

10

Może szukam w niewłaściwy sposób, ale nie udało mi się dowiedzieć, jak to zrobić.

Oto scenariusz: Mam listę w pliku tekstowym, w której chcę wstawić to samo słowo w wielu wierszach, oto przykładowy tekst:

12.1 Pozycja 1
12.2 Pozycja 2
12.3 Pozycja 3

Teraz zaznaczam wizualnie blok ósmej kolumny, zaznaczonej poniżej podkreśleniem, i zamierzam zastąpić część białej spacji Donebez przesuwania kolumny przedmiotu:

12.1 _ Pozycja 1
12.2 _ Pozycja 2
12.3 _ Pozycja 3

Spodziewałem się, że mogę przejść do trybu zastępowania, ale mogę wprowadzić tylko insert ( I), append ( A) lub change-mode ( c). Tryb zmiany jest zbliżony do tego, czego chcę: jeśli znam długość słowa, blok można ustawić na tę samą szerokość.

Czy czegoś tu brakuje?

Thor
źródło

Odpowiedzi:

18

Dlaczego nie wybierzesz 4 kolumn i nie uderzysz c?

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

Możesz także użyć :h normal:

V
2j
:'<,'>norm 7lRDone
<Esc>
romainl
źródło
1
To działa Done, ale co jeśli chcę napisać coś innego, chcę być wolny od liczenia znaków, jeśli to możliwe.
Thor
1
:normjest twoim przyjacielem.
romainl,
Tak, drugiego rozwiązania można użyć do wygodnego mapowania. Dziękuję Ci.
Thor
1

Jeśli chcesz zastąpić w bloku wizualnym, możesz użyć vis.vimwtyczki .

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

Żeby zainstalować:

Pobierz vis.vba.gz ze strony 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

Po zainstalowaniu:

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

Co więcej, możesz wykonać dowolną komendę Ex na bloku wizualnym, a nie tylko podstawienia. Na przykład :B !sort.

Christian Long
źródło
Fajna wtyczka, będę jej używać :-). Ale jak mogę go użyć do zastąpienia dowolnych kolumn?
Thor,
Nadal masz problem z szybkim ustawieniem wizualnej szerokości bloku, aby dopasować kolumny o dowolnej szerokości. Zazwyczaj robię <count> wlub, eaby szybko wybrać kilka kolumn, a następnie dostosować za pomocą hlub l.
Christian Long,