Dużo pracuję z trybem blokowania wizualnego, który wydaje mi się bardzo przydatny do szybkich zmian w wielu liniach.
Ale mam problem z wstawieniem nowego wiersza w taki sposób:
Wybór jest odnotowany jako []
:
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Naciskam I
i mogę dodać tekst do wstawienia przed t
:
Some other text
Some [t]ext
Some [t]ext
Some [t]ext
Some [t]ext
Kiedy naciskam <Esc>
, otrzymuję:
Some other text
Some other text
Some other text
Some other text
Some other text
Ale teraz, jeśli nacisnę <CR>
zamiast tekstu, który chcę dodać, nowa linia zostanie wstawiona zgodnie z potrzebą, ale nie dla innych wierszy. Wynik jest następujący:
Some
text
Some text
Some text
Some text
Some text
Czy wiesz, dlaczego to nie działa?
Uwaga: ponieważ to działa c
i r
nie jestem pewien, dlaczego to nie działa ...
insert-mode
visual-block
nobe4
źródło
źródło
Odpowiedzi:
Blok wizualny
I
tak nie działa. Najlepsze, co możesz zrobić, to coś takiego.Podświetl kolumnę w trybie blokowania wizualnego (
[b]
oznaczając podświetlony znak jak w pytaniu):Wykonaj substytucję w obszarze wizualnym za pomocą
\%V
:Vim wstawi
'<,'>
za ciebie po naciśnięciu:
, więc nie musisz wpisywać tego bitu.A wynik:
Jeśli musisz często dzielić linie w bloku wizualnym, są duże szanse, że będzie on łatwo dostępny w twojej historii i nie będziesz musiał robić nic więcej niż podświetlanie
:<up><return>
.źródło
\%V
nawet jeśli nie jest to, co chciałem. Zaakceptuję to (ale to, co chcę, wydaje się w każdym razie niemożliwe ^^)