Dies ähnelt dem Bearbeiten von Dateien mit einem Satz pro Zeile (sowohl in Bezug auf die Funktion als auch auf das Motiv), ich möchte jedoch einen vollständigen, fließenden Absatz anstelle von visuellen Unterbrechungen bei jedem Satz haben.
Ich möchte einen Nebenmodus haben, der, wenn er aktiviert ist , visuell Zeilen aus demselben Absatz verbindet (nicht durch \n\n
oder paragraph-separate
oder getrennt ) und dann das Verhalten aktiviert (möglicherweise abgeleitet von visual-line-mode
), das die Zeile umbricht, ohne sie tatsächlich einzufügen \n
.
Gibt es einen solchen Modus? Wenn nicht, wie gehe ich vor, um die Anzeigeeigenschaften eines Absatzes zu ändern, um das Ergebnis zu erzielen? (Immerhin ist dies der springende Punkt eines solchen Modus, und man könnte ihn aus dem Snippet entwickeln.)
quelle
\n
beibehalten wird (falls vorhanden), oder möchten Sie, dass die Zeilenumbrüche tatsächlich entfernt werden, um 1 Absatz pro Zeile bereitzustellen?buffer-display-table
, um die neuen Zeilen\n
als Leerzeichen oder ähnliches erscheinen zu lassen - siehe folgendes Beispiel im Link: stackoverflow.com/a/24842771/2112489 Der Vorteil dabei wäre, dass der Text im Dokument wird nicht geändert. Die neue Linie kann so gut wie alles sein - z. B. ein Smiley, Leerzeichen, ein Pilgersymbol usw. Der visuelle Effekt besteht darin, dass eine Umhüllung erfolgt.Antworten:
Wie Tom sagte, wird das Setzen einer Anzeigeeigenschaft auf die Zeilenumbrüche eine Art Arbeit sein.
Das Problem besteht darin, herauszufinden, welche Zeilen umbrochen werden sollen.
Hier ist ein Beispiel für den Einstieg:
Dadurch werden Zeilenumbrüche "entfernt", wenn vor ihnen grafische Zeichen stehen und die nächste Zeile nicht eingerückt oder leer ist. Sie müssen experimentieren, um etwas zu finden, das für Sie funktioniert.
Noch ein paar Erklärungen:
font-lock-add-keywords
Fügt der Schriftsperre eine Liste von Regeln hinzu (daher muss die Schriftsperre aktiviert sein. Das erste Argument kann ein Modus sein (z. B.text-mode
); in unserem Fall ist es null, was bedeutet, dass die Regel nur für den aktuellen Puffer hinzugefügt wird.(,eol-regexp 1 '(face default display " "))
. Das erste Element ist der reguläre Ausdruck, den wir zuvor erstellt haben. Der zweite ist der Teilausdruck, an dem wir interessiert sind. Das dritte ist das "Gesicht", das wir anwenden möchten.font-lock-remove-keywords
.display
zufont-lock-extra-managed-props
(ich habe nicht versucht).quelle
Wenn ich das Problem richtig verstehe, möchten Sie alle Zeilenumbrüche im Puffer so belassen, wie sie sind. Sie möchten jedoch einige davon als Leerzeichen anzeigen. Dann möchten Sie Zeilenumbruch.
Zum Zeilenumbruch kann man meiner Meinung nach verwenden
visual-line-mode
.Ich denke, Sie könnten für den Umgang mit den Zeilenumbrüchen eine
display
Eigenschaft mit" "
(eine Zeichenfolge, die aus einem einzelnen Leerzeichen besteht) als Wert in die Zeilenumbrüche einfügen, die Sie anders anzeigen möchten.quelle