Vim automatycznie wstawia komentarz, gdy rozpoczynam nowy wiersz od skomentowanej linii, ponieważ ustawiłem formatoptions=tcroql
. Na przykład (kursor jest *
):
// this is a comment*
i po uderzeniu <Enter>
(tryb wstawiania) lub o
(tryb normalny) pozostało mi:
// this is a comment
// *
Ta funkcja jest bardzo przydatna przy pisaniu długich komentarzy wieloliniowych, ale często po prostu chcę komentarza z jedną linią. Teraz, jeśli chcę zakończyć serię komentarzy, mam kilka opcji:
- trafienie
<Esc>S
- trafienie
<BS>
trzy razy
Oba zapewniają trzy naciśnięcia klawiszy, razem z <Enter>
Oznacza to cztery naciśnięcia klawiszy dla nowej linii, co uważam za zbyt wiele. Idealnie chciałbym po prostu trafić <Enter>
po raz drugi pozostanie z:
// this is a comment
*
Ważne jest, aby rozwiązanie działało również z różnymi poziomami wcięć, tj.
int main(void) {
// this is a comment*
}
trafienie <Enter>
int main(void) {
// this is a comment
// *
}
trafienie <Enter>
int main(void) {
// this is a comment
*
}
Myślę, że widziałem tę funkcję w jakimś edytorze tekstu kilka lat temu, ale nie pamiętam, który to był. Czy ktoś wie o rozwiązaniu, które zrobi to dla mnie w Vimie? Bardzo mile widziane są również wskazówki dotyczące właściwego toczenia własnego rozwiązania.