Czy istnieje polecenie podziału linii w Vimie?

15

W Vimie Jklucz łączy dwie linie razem. Czy istnieje podobna, wbudowana kombinacja klawiszy z liniami podziału z nową linią (w pozycji kursora lub podobna)?

Alternatywnie, jaki byłby najbardziej niezawodny sposób zdefiniowania kombinacji klawiszy, aby to zrobić (w trybie normalnym, a nie w trybie wstawiania)?

Andrew Ferrier
źródło

Odpowiedzi:

16

Nie, nie ma do tego wbudowanego polecenia.

Kiedy chcę podzielić na <Space>, robię r<CR>.

--- EDYTOWAĆ ---

Komentarz @ keith-nicholas przypomniał mi o tym pytaniu. FWIW W międzyczasie wymyśliłem metodę „uniwersalną”, miejmy nadzieję:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>
romainl
źródło
4
Korzystanie r<CR>jest po prostu sprytne! Dzięki!
Marcelo
1
to wspaniale! bardzo denerwujące wchodzenie do wstawiania w celu wstawiania wierszy
Keith Nicholas
Znalazłem s<CR>zachowuje wcięcia, podczas r<CR>gdy nie.
toksefa
5

a Enter Escpodzielić na prawo od kursora lub i Enter Escpodzielić na lewo.

Scott
źródło
1
To jest to. Wystarczy wstawić jedną nową linię. Alternatywnie: użyj r + <powrót>, aby zastąpić znak pod kursorem nową linią. Byłoby miło mieć jedną literę polecenia, ale o ile wiem, nie ma jednej.
Tonny
2

Najłatwiejszym sposobem na podzielenie linii w Vimie jest polecenie trybu normalnego gq(wpisz obie litery szybko w trybie normalnym lub wizualnym):

  • W trybie wizualnym podzieli wszystko, co zostanie wybrane.
  • W trybie normalnym wykonujesz gqruch.

Na przykład gqlpodzieli jedną linię na aktualnie ustawioną szerokość. Aby ustawić szerokość linii podziału na inne niż bieżące ustawienie, możesz użyć

:set textwidth=<n>

Gdzie n = liczba znaków, które chcesz w linii, np. 10, i powróć do swojej normalnej szerokości po zakończeniu.

Otrzymałem te informacje z filmu na Youtube autorstwa Kholidfu, który pokazuje, jak łączyć i rozdzielać linie w trybie normalnym za pomocą ruchu: Vim Tutorial - Join and Split Lines .

Vdicarlo
źródło
1

Możesz zdefiniować własne za pomocą mapy. Aby zdefiniować z jako polecenie, na przykład:

:map z i<CTRL+m>
podejrzenie
źródło
0

Możesz nagrać makro:

w trybie normalnym wpisz „q +”, aby rozpocząć nagrywanie. naciśnij „i”, makro, które chcesz nagrać. następnie ponownie naciśnij „q”, aby zatrzymać nagrywanie.

aby użyć makra, przejdź do trybu normalnego i wpisz „@ + litera”.

w moim przypadku użyłem „b”, aby użyć tego makra: aby nagrać tekst w trybie normalnym „qbiq”, aby użyć tekstu w trybie normalnym „@b”

luizhj
źródło