Wizualny wybór od kursora do następnej pustej linii?

11

Jak można wybrać z bieżącej linii do następnej pustej linii?

Jestem świadomy SHIFT+, Vale muszę albo przejść do następnej pustej linii, albo kilka razy nacisnąć klawisz strzałki w dół. Wiem, jak to zrobić dobrze, gdy istnieje taka sama postać, }ale nie mam pojęcia, jak to zrobić dla pustej linii.

leeand00
źródło

Odpowiedzi:

19

Vim rozumie pojęcie „akapitu”. Definicja akapitu Vima to blok tekstu otoczony pustymi liniami * . Istnieje kilka ruchów i obiektów tekstowych do pracy z tym.

  • [count]}- Przesuwaj [count]akapity do przodu. Możesz użyć, <S-v>}aby zaznaczyć wszystkie linie od bieżącej linii do następnej pustej linii. Obejmuje to pustą linię, więc możesz chcieć użyć <S-v>}k.
  • [count]ip- Wybierz [count]akapity. To jest jak iw(wewnętrzne słowo) z wyjątkiem, cóż, akapitów. Użycie vipspowoduje zaznaczenie całego akapitu, a nie od bieżącego wiersza do końca akapitu.
  • [count]ap- na przykład ip, z tym, że będzie to obejmować puste linie otaczające akapit.

Jednym zastrzeżeniem jest to, że Vim nie uważa linii z białymi spacjami za „pustą linię”. Dlatego sprawdź to (np. Za pomocą :set list), jeśli nie działa.


Pamiętaj również, że zawsze możesz wyszukać odpowiedni wzór. Możesz uzyskać pustą linię za pomocą /^$; lub jeśli nie chcesz wybrać pustej linii, możesz użyć \n\nkursora na końcu linii przed pierwszą pustą linią:

  • <S-v>/^$<CR>
  • <S-v>/\n\n<CR>

* Istnieje kilka wyjątków, zobacz :help paragraphpełną logikę. Ale w większości przypadków ta definicja działa dobrze.

Martin Tournoij
źródło
12

Skrót do następnej pustej linii to }. Więc możesz chcieć użyć SHIFT+v}

marderh
źródło
1

Wystarczy nacisnąć, Shift + }aby przejść do następnego pustego wiersza bez zaznaczenia tekstu.

Za pomocą Sift + v + }, vim wybiera tekst od aktualnej pozycji kursora do następnej pustej linii i musisz nacisnąć, ESCaby wyjść z trybu wyboru

Junaid
źródło
Dlaczego Shift + }? Prosty }robi ruch. Zobacz inne odpowiedzi.
Ralf
@Ralf, Sift + }aby wywołać / wprowadzić nawias klamrowy, }chyba że klawiatura bezpośrednio obsługuje wstawianie }bez naciskaniaShift
Junaid