Jak w Vimie wstawiać znaki na początku każdej linii w zaznaczeniu?
Na przykład chcę skomentować blok kodu, przygotowując //
na początku każdej linii, zakładając, że system komentarzy w moim języku nie pozwala na komentowanie bloków w podobny sposób /* */
. Jak mam to zrobić?
Shift + v
nieCTRL + v
. @ vkaul11 Prawdopodobnie to samo, co zrobiłeś lolZastępuje początek każdego wiersza „//”:
To zastępuje początek każdej wybranej linii (użyj trybu wizualnego, aby wybrać) z „//”:
Pamiętaj, że
gv
(w trybie normalnym) przywraca ostatni wybór wizualny, co jest przydatne od czasu do czasu.źródło
/
i konieczności uciec//
w:s/^/\/\/
zamiast pisania:s!^!//
)Ogólny wzorzec wyszukiwania i zamiany to:
Zamienia pierwsze wystąpienie „wyszukiwania” na „zamień” dla bieżącej linii
Zamienia wszystkie wystąpienia „wyszukiwania” na „zamień” dla bieżącej linii, „g” jest skrótem od „globalny”
To polecenie zamienia każde wystąpienie „wyszukiwania” na „zamień” tylko dla bieżącej linii. % Służy do przeszukiwania całego pliku. Aby interaktywnie potwierdzić każdą zamianę, dodaj „c”, aby potwierdzić:
Interaktywne potwierdzenie zamiany „wyszukiwania” na „zamień” dla całego pliku
Zamiast znaku% możesz użyć zakresu numerów linii (zwróć uwagę, że znak „^” jest specjalnym znakiem wyszukiwania na początku linii) :
Wstawia znak „#” na początku linii 14-20
Jeśli chcesz użyć innego znaku komentarza (takiego jak //), zmień ogranicznik polecenia:
Wstawia sekwencję znaków „//” na początku linii 14-20
Lub zawsze możesz po prostu uciec od // znaków takich jak:
Wstawia sekwencję znaków „//” na początku linii 14-20
Jeśli nie widzisz numerów wierszy w edytorze, po prostu wpisz następujące polecenie
źródło
#
w linii. Zamiast tego powinieneś użyć^#
.Innym sposobem, który może być łatwiejszy dla początkujących:
Umieść kursor w pierwszym wierszu, np. Przez
gg
i wpisz następujące polecenie, aby przejść do trybu wstawiania i dodać tekst:
I / / Space
Naciśnij, Escaby wrócić do trybu poleceń i użyj znaku:
j . j .
jto polecenie ruchu, które prowadzi w dół o jeden wiersz i .powtarza ostatnie wykonane polecenie edycji.
źródło
|
zamiast dużej literyI
. Myślałem, że to|
na początku.I jeszcze inny sposób:
źródło
Dodaje to
#
na początku każdej linii:I ludzie przestaną narzekać na twój brak poprawnie komentujących skryptów.
źródło
Jeśli chcesz się o tym przekonać, umieść to w swoim .vimrc:
Wtedy, gdy w trybie wizualnym, można trafić
\c
do C omment bloku i\u
aby u jej ncomment. Oczywiście możesz zmienić te skróty klawiszowe na cokolwiek.źródło
vmap
!Jeszcze inny sposób:
/^/
to tylko fikcyjny wzór pasujący do każdej linii.norm
pozwala uruchamiać następujące polecenia trybu normalnego.I//
mówi, aby przejść do trybu wstawiania, przesuwając kursor na początek wiersza, a następnie wstawić następujący tekst (dwa ukośniki).:g
jest często przydatny do robienia czegoś złożonego na wielu liniach, gdzie możesz chcieć przeskakiwać między wieloma trybami, usuwać lub dodawać linie, przesuwać kursor, uruchamiać wiązkę makr itp. I możesz nakazać mu działanie tylko na liniach, które dopasuj wzór.źródło
Do komentowania bloków kodu podoba mi się wtyczka NERD Commenter .
Wybierz tekst:
Komentarz:
Odkomentowanie:
Lub po prostu przełącz stan komentarza linii lub bloku:
źródło
Mogę polecić wtyczkę EnhCommentify .
na przykład. umieść to w swoim vimrc:
możesz następnie komentować / odkomentować (wybrane) linie za pomocą „, c”
źródło
Zaznacz obszar do komentarza jako blok wizualny (
<C-V
)i robić
c#<ESC>p
c
zmień to na „#”Jeśli robisz to często, zdefiniuj skrót (przykład
\q
) w swoim .vimrcźródło
W przypadku, gdy czyjeś zaznaczenie wielu wierszy jest tak naprawdę akapitem, nie ma potrzeby ręcznego wybierania wierszy. vim może to dla ciebie zrobić:
vip
: wybierz i zaznacz cały akapitshift-i
: wstaw tekst na początku liniiescape
: wyjdź z trybu wstawiania / wejdź w tryb normalny [początki linii wciąż wybrane]escape
: odznacz początkowe linieźródło
Aby wstawić „ABC” na początku każdej linii:
1) Przejdź do trybu poleceń
2):% normy I ABC
źródło