Bardzo często piszę przecenę w VIM i będą tam akapity. Aby ułatwić edycję, ustawiam Vima tak, aby zawijał wiersz na 80 znakach. Działa dobrze, jeśli po prostu kontynuuję pisanie, ale problem polega na tym, że jeśli muszę coś poprawić, staje się bardzo denerwujący.
demo (wzięte z logiki pierwszego rzędu wikipedia):
The adjective "first-order" distinguishes first-order logic from higher-order logic
in which there are predicates having predicates or functions as arguments. In first-order
theories, predicates are often associated with sets. In interpreted higher-order
theories, predicates may be interpreted as sets of sets.
Na razie w porządku. Ale kiedy poprawiam artykuł, mogę zdecydować się na dodanie czegoś pośrodku, powiedz:
The adjective "first-order" distinguishes first-order logic from higher-order logic
in which there are predicates having predicates or functions as arguments,
or in which one or both of predicate quantifiers or function quantifiers are permitted.
In first-order theories, predicates are often associated with sets. In interpreted higher-order
theories, predicates may be interpreted as sets of sets.
zauważ, że linia 3 to ta, którą chcę owinąć. Jeśli zrobię to w VIM, będę musiał ręcznie połączyć linie i zawinąć cały akapit.
Czy ktoś ma pomysł, jak zmusić VIM do robienia tego automatycznie?
źródło
Rzuciłbym okiem
:help 'textwidth'
. Automatycznie przerywa linie podczas pisania. Jednak to nie działa, jeśli edytujesz środek linii.Osobiście wolę zrezygnować
textwidth
, dlatego stworzyłem funkcję, która automatycznie połączy i podzieli akapit. (Zasadniczo formatowanie automatyczne do 80 znaków) Wygląda to tak:Mam mapowanie, aby móc je wywoływać, gdy tylko będę tego potrzebować:
Ta funkcja doskonale
formatoptions+=jr
nadaje się również do formatowania komentarzy w kodzie! Wystarczy umieścić kursor w pierwszym wierszu dłuższym niż 80 znaków i wywołać funkcję.(Uwaga: nie podałem tej funkcji do generowania długości innych niż 80, ale myślę, że wystarczy zmienić 80 i 81, jeśli chcesz zrobić coś innego)
Zobacz
:help 'textwidth'
i:help 'formatoptions'
więcej informacji.źródło
textwidth
sformatuje się automatycznie podczas pisania. Moja funkcja nie. Wolę kontrolować, kiedy vim owija rzeczy, więc to działa dla mnie. Ale jeśli konkretnie szukasz formatera podczas pisania, tak; nie do końca pasuje do twojego przepływu pracy.Dla kompletności chciałbym wspomnieć o opcji opartej na wtyczkach.
Jeśli używasz czegoś takiego jak ALE, który obsługuje uruchamianie twoich buforów przez beautifier podczas zapisywania, możesz pozwolić Prettier'owi obsłużyć przepisywanie kodu.
Osiągnąłem to, umieszczając to w
~/.vim/ftplugin/markdown.vim
:... i umieszczając to w
~/.vimrc
:źródło