Obecnie piszę dużo zwykłego tekstu (i LaTeX-a z minimalnym formatowaniem w akapitach), i byłoby miło, gdybym mógł ustawić vim, aby zachować każde zdanie (dla uproszczenia tekst zakończony znakiem „.”, „!”) lub „?”; jest to kończąca interpunkcja, po której następuje spacja, aby uniknąć łamania liczb dziesiętnych) na jej własnej linii, tak więc różnice VCS będą bardziej przydatne.
Minimalnie chciałbym gq
sformatować tekst z:
He lay flat on the brown, pine-needled floor of the forest, his chin on his
folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he
could see the dark of the oiled road winding through the pass. There was a
stream alongside the road and far down the pass he saw a mill beside the
stream and the falling water of the dam, white in the summer sunlight.
Do:
He lay flat on the brown, pine-needled floor of the forest, his chin on his folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he could see the dark of the oiled road winding through the pass.
There was a stream alongside the road and far down the pass he saw a mill beside the stream and the falling water of the dam, white in the summer sunlight.
Byłoby jednak miło, gdyby vim również wykonywał to formatowanie podczas pisania (podobnie jak w przypadku zmiany przepływu tekstu). czy to możliwe?
Moje obecne rozwiązanie to dołączyć akapit J
, a następnie uruchomić, :'<,'>s/\. /.\r/g
co jest całkiem dobre, ponieważ jest niewiele wykrzykników i znaków zapytania, ale byłoby znacznie lepiej, gdybym mógł sprawić, że gq będzie nieco mądrzejszy.
źródło
)
i wstaw nowy wiersz; powtarzaj, aż dojdziesz do końca zakresu”. Wtedy prawdopodobnie zastosowałby wszelkie zasady wcięcia. Ale mój Vim-fu jest na to za słaby. :)e.g. blah
IBlah et al. 2018
jest trochę denerwujące. Możesz dopasować takie wzorce do czegoś podobnego's/\(e\.g\|\<al\)\@<![.!?]\zs /\r/g'
. Po prostu dodaj więcej wzorów do pierwszej grupy, aby uniknąć innych rzeczy, na które nie chcesz się dzielić. W przeciwnym razie jest to bardzo przydatne, dzięki. Nie spotkałem sięgq
wcześniej igqip
jest bardzo przydatny do formatowania tekstu, który redaktorzy tekstu współautora popsuli.Możesz skonfigurować niektóre mapy i automatyczne polecenia:
Następnie ustaw typ pliku na customtxt lub wywołaj
AddSentenceMaps
funkcję ręcznie.źródło
Chcę dodać swoje przemyślenia na temat tego problemu. Zwykle ludzie chcą tego rodzaju funkcji ze względu na przeskakiwanie owiniętych linii podczas nawigacji po kodzie za pomocą poleceń
j
ik
, co jest domyślnym zachowaniem Vima. Do nawigacji po owiniętych liniach używamgj
- przesuń w dół igk
- przesuń w górę. Istnieje również możliwość zmiany mapowania standarduj
ik
komendy na odpowiedniki z prefiksem g, ale IMHO byłoby przesadą.źródło
j
ik
dogj
igk
kiedy chcesz ;-)Nie odpowiada na konkretne pytanie dotyczące ponownego formatowania, ale „zawijanie zestawu” i „ustawianie podziału linii” mogą znacznie uprzyjemnić edytowanie długich linii. Połącz to z gj i gk, aby poruszać się w zawijanych liniach. Mapuję strzałki w górę i w dół odpowiednio na gj i gk, dzięki czemu mam wybór między przemieszczaniem się w górę i w dół linii rzeczywistych lub linii wizualnych. Jak mądrze dla Home / End do g0 / g $.
źródło