Sehr oft schreibe ich Abschriften in VIM, und diese Abschriften enthalten Absätze. Um meine Bearbeitung zu erleichtern, richte ich mein Vim so ein, dass eine Zeile mit 80 Zeichen umbrochen wird. Es funktioniert gut, wenn ich einfach weiter tippe, aber das Problem ist, wenn ich etwas korrigieren muss, wird es sehr nervig.
Demo (aus der Wikipedia-Logik erster Ordnung):
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.
So weit, ist es gut. Aber wenn ich den Artikel überarbeite, könnte ich beschließen, etwas in der Mitte hinzuzufügen, sagen wir:
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.
Beachten Sie, dass Zeile 3 diejenige ist, die ich einschließen möchte. Wenn ich es in VIM mache, muss ich die Zeilen manuell verbinden und den gesamten Absatz neu wickeln.
Hat jemand eine Idee, wie man VIM dazu bringt, es automatisch zu machen?
quelle
Ich würde einen Blick darauf werfen
:help 'textwidth'
. Während der Eingabe werden automatisch Zeilen unterbrochen. Dies funktioniert jedoch nicht, wenn Sie die Mitte einer Zeile bearbeiten.Ich persönlich ziehe es vor, wegzulassen
textwidth
, also habe ich eine Funktion erstellt, die einen Absatz automatisch verbindet und teilt. (Grundsätzlich automatisch auf 80 Zeichen formatieren) Es sieht so aus:Ich habe dann ein Mapping, um es aufzurufen, wann immer ich es brauche:
Diese Funktion eignet sich auch hervorragend
formatoptions+=jr
zum Formatieren von Kommentaren im Code! Setzen Sie einfach Ihren Cursor auf die erste Zeile, die länger als 80 Zeichen ist, und rufen Sie die Funktion auf.(Hinweis: Ich habe diese Funktion nicht allgemein für andere Längen als 80 festgelegt, aber ich denke, Sie müssen nur die 80er und 81er ändern, wenn Sie etwas anderes machen möchten.)
Siehe
:help 'textwidth'
und:help 'formatoptions'
für weitere Informationen.quelle
textwidth
wird während der Eingabe automatisch formatiert. Meine Funktion wird nicht. Ich ziehe es vor zu kontrollieren, wann vim Dinge einpackt, also funktioniert es für mich. Aber wenn Sie speziell nach einem Formatierer suchen, ja, ja; es passt nicht ganz zu Ihrem Workflow.Der Vollständigkeit halber möchte ich die Plugin-basierte Option erwähnen.
Wenn Sie so etwas wie ALE verwenden, das das Ausführen Ihrer Puffer durch einen Verschönerer beim Speichern unterstützt, können Sie Prettier das Umwickeln Ihres Codes überlassen.
Ich habe das erreicht, indem ich Folgendes eingegeben habe
~/.vim/ftplugin/markdown.vim
:... und dies einfügen
~/.vimrc
:quelle