Zdaję sobie sprawę, że w Vimie często mogę powtórzyć polecenie, po prostu dodając przed nim liczbę. Na przykład można usunąć 5 wierszy przez:
5dd
Często można również określić zakres linii, do których można zastosować polecenie, na przykład
:10,20s:hello:goodbye:gc
Jak mogę przeprowadzić „edycję pionową”? Chciałbym np. Wstawić konkretny symbol, powiedzieć przecinek, na początku (pomijając białe znaki, czyli to, co dostaniesz, jeśli wpiszesz przecinek po Shift-I w trybie poleceń) każdego wiersza w danym zasięg. Jak można to osiągnąć (bez uciekania się do okresu przestoju, okresu przestoju)?
^\(\s*\)
przechwytuje początkowe białe znaki i zapisuje je w rejestrze, z którego można następnie odczytać\1
.Ctrl- vprzechodzi w tryb wizualny blokowo. Następnie możesz przesuwać ( hjkltak jak zwykle), a jeśli chcesz wstawić coś w wielu wierszach, użyj Shift- i.
Tak więc w przypadku tekstu:
jeśli trafisz Ctrl- vz kursorem na 1, naciśnij jdwukrotnie, aby zejść o dwie kolumny w dół, a następnie Shift- i,ESC, twój tekst będzie wyglądał następująco:
(wstawka wieloliniowa ma niewielkie opóźnienie i nie będzie renderowana, dopóki nie zostanie uderzona ESC).
źródło
i
nie używają bez klawisza Shift?Do tego służy polecenie: norm (al):
źródło
Jeśli już używasz rozszerzenia „.” aby często powtarzać ostatnie polecenie, to okazało się, że jest to jak dotąd najwygodniejsze rozwiązanie. Umożliwia powtórzenie ostatniego polecenia w każdym wierszu bloku wizualnego za pomocą
źródło
.
działa liniowo w trybie wizualnym. Myślę, że tryb wizualny w tym przypadku może czasami być wygodny do wyboru zakresu linii. Ale w tym przypadku polecenia i makra są bardziej elastyczne i wydajniejsze.Uważam, że najłatwiej to zrobić
1) zapisz makro dla jednej linii, nazwij to „a”; w tym przypadku jeden typ
2) wybierz blok linii, do którego chcesz zastosować makro
3) użyj funkcji „norm”, aby wykonać makro „a” nad tym blokiem linii, tj.
źródło
Myślę, że najłatwiej jest nagrać makro, a następnie powtórzyć je tyle razy, ile chcesz. Na przykład, aby dodać przecinek na początku każdego wiersza, należy wpisać:
aby powtórzyć to 5 razy, wprowadź
źródło
Używam blokowego trybu wizualnego . Umożliwia to wstawianie / edycję wielu linii (inaczej „edycje pionowe”).
źródło
Mając już zapisaną edycję w
.
operatorze, wykonaj następujące czynności::norm .
źródło
Oprócz makr, jak już odpowiedziałem, dla konkretnego przypadku wstawiania przecinka w zakresie wierszy (powiedzmy od linii 10 do 20), możesz zrobić coś takiego:
Oznacza to, że możesz utworzyć numerowaną grupę dopasowaną za pomocą \ (i \) i użyć \ 1 w ciągu zastępującym, aby powiedzieć „zamień na zawartość dopasowania”.
źródło