Ich suche einen Nebenmodus, um die Absätze während der Eingabe immer gefüllt zu halten (ähnlich aggressive-indent-mode
wie beim Einrücken). Es muss auch klug genug sein, um nur Kommentare (und möglicherweise Zeichenfolgen, die von der Sprache abhängen) auszufüllen.
Einige Dinge, die ich ausprobiert habe, sind:
auto-fill-mode
Wird automatisch ausgefüllt, während Sie neue Absätze eingeben, wird jedoch beim Bearbeiten von Absätzen nicht wieder aufgefüllt.refill-mode
füllt Absätze ständig nach, versucht aber, Code in Absätze und Kommentare zu packen.Ich habe versucht
fill-paragraph
, denafter-change-functions
Haken zu ergänzen, aber es macht das Aufheben und viele andere Dinge kaputt (dies ist wahrscheinlich alles reparabel, würde aber einige Mühe kosten).
Irgendwelche besseren Ideen?
quelle
org-mode
, aber Sie können versuchen, rebox2Antworten:
Ich hatte eine minimale Möglichkeit, diese Funktionalität zu implementieren: Binden Sie einfach die Leertaste, um auch aufzurufen
(fill-paragraph)
!Es gibt ein paar Vorbehalte, über die ich bisher gestolpert bin:
elisp-mode
(möglicherweise andere) füllt sich mit ausgefallenem Code, wenn Sie anrufenfill-paragraph
. Dies kann sein oder nicht, was Sie wollen. Kann wahrscheinlich behoben werden, indem getestet wird, ob der Punkt in einem Kommentar oder einer Dokumentationszeichenfolge enthalten ist, aber ich bin mir nicht sicher, wie ich das machen soll.Sie können manchmal nicht einfach mehrere Leerzeichen eingeben (da die
fill-paragraph
nachfolgenden Leerzeichen gelöscht werden). Da die Leertaste jetzt so aussieht, als wärejust-one-space
es wahrscheinlich in Ordnung, diese Bindung durch zu ersetzen(insert " ")
.Ich habe einen Minor-Modus mit dieser Funktionalität erstellt, der auf github oder im melpa-Paket verfügbar ist
aggressive-fill-paragraph
.quelle
aggressive-fill-paragraph
es weitaus weniger aggressiv ist alsrefill-mode
, was aggressiv ist, bis es ziemlich nutzlos ist (da man nicht einmal jemanden zitieren kann, der keine>
Neuordnung im Nachfüllmodus vornimmt: selbst wenn man Regexps als Ersatz verwendet) .Wenn Sie möchten, wie sich der Nachfüllmodus verhält (I don't: p), aber nicht, wenn er sich verhält, sollte es relativ einfach sein, ihn zu deaktivieren, wenn Sie nicht unter den richtigen Bedingungen sind
Beispielsweise
Im Grunde genommen wird die Funktion entfernt, die das Nachfüllen auslöst,
after-change-functions
und durch eine ersetzt, die zusätzlich prüft, ob ein Kommentar vorliegt, bevor genau dasselbe ausgeführt wird.quelle
refill-mode
:) Das Problem , das istrefill-mode
Verwendungfill-region
stattfill-paragraph
, wodurch die Fähigkeit zur Ehre zu verlierenfill-paragraph-function
und Dinge potentiell chaotisch