In einem 80 Spalten breiten Terminal umschließt Emacs 80 Spaltenlinien und setzt einen Backslash in die 80. Spalte. Gibt es eine Möglichkeit, Emacs zu sagen, alle 80 Spalten meines Terminals zu verwenden und Zeilen nicht zu umbrechen, bis sie 81 Zeichen erreichen?
Wenn ich diese Frage richtig verstehe, handelt es sich nicht um eine logische Zeile Umbruch (wie Linien in Ihrer Datei segmentiert sind), sondern um visuelles Wrapping (wie Linien in Bezug auf die Fensterbreite angezeigt werden).
Wenn Sie möchten, dass die Anzeige visuell mehr als null Zeichen zuvor umschließt Fenstergrenze, und so vermeiden Sie den Backslash überall, wie lange Ihre logischen Zeilen wirklich sind, können Sie Langlines-Modus :
Im Gegensatz zum Modus "Visuelle Linie" werden im Modus "Lange Linien" lange Linien in der Füllspalte (siehe Füllbefehle) und nicht in der rechten Fensterkante unterbrochen. Um den Modus Lange Linien zu aktivieren, geben Sie M-x Langlinienmodus ein. Wenn der Text mit langen Zeilen gefüllt ist, "umschließt" er sie alle sofort.
Dann ist es nur eine Frage der richtigen Einstellung der Füllsäule
entweder globale Einstellungen ( .emacs
, obwohl Sie wahrscheinlich ein
spezifische Modus-Hook für diesen speziellen Fall), lokale Einstellungen (Datei
Variable, dir-locals) oder C-u <79> fill-column
auf 79 zu setzen. Auf diese Weise werden die Zeilen 79
Zeichen oder höher werden umgebrochen, aber bevor Sie die rechte Kante des
80-Char-Fenster (und damit nie einen hässlichen Backslash-Charakter verlassen). Ihre
Datei wird nicht verändert.
Wenn Sie möchten, dass bei 80-Zeichen-Zeilen kein visuelles Wrapping auftritt und das 80. logische Zeichen nicht visuell unter dem ersten angezeigt werden soll, gibt es zwei mögliche Antworten:
Entweder arbeiten Sie in einer Umgebung, in die Sie nicht unbedingt einpacken müssen logisch bei oder vor 80 Zeichen, und Sie möchten das Ende von sehen diese 81+ Zeilen irgendwo auf Ihrem Bildschirm (d. h. Sie wollen visuelle Wrap, aber bei einer Reihe von Zeichen oberhalb der Fensterbreite), dann Ich weiß nicht, wie zu tun ist es .
oder Sie möchten Ihre Zeilen mit 80 Zeichen logisch beenden (z. B. Sie
Haben Sie automatisch füllen und füllen Spalte bei 80), und wenn Sie zufällig haben
Zeilen 81 Zeichen oder mehr, ist es nicht wichtig, ihr Ende zu sehen.
Aktivieren Sie in diesem Fall truncate-mode ( toggle-truncate-lines
).
Wenn es sich bei dem Problem um das letzte Zeichen Ihres Fensters handelt und Sie wirklich möchten, ist das 80. logische Zeichen Ihrer Linie, das auf dem 80. visuellen Zeichen Ihres Fensters angezeigt wird. Ich fürchte, ich weiß nicht wie. Entweder trimmen Sie Zeilen (wie oben), und das letzte Zeichen Ihres Fensters ist ein $, oder Sie lassen Emacs machen ihr Ding , und das letzte Zeichen wird ein Backslash sein.
Beachten Sie beim Testen des Wrappings von Auto-Fill (aber auch des Longlines-Modus, da es das visuelle Äquivalent ist) nur an Wortgrenzen.
Eine Option besteht darin, das Umbrechen auf 81 anstelle von 80 zu setzen.
%Vor%Eine andere Option, vielleicht die beste Wahl, ist die Definition der Variablen Überlauf-Neuzeile-in-Rahmen als t. Versuchen Sie es einmal manuell:
%Vor% Eine dieser Optionen könnte standardmäßig eingestellt sein. Sie können dies über M-x customize
oder durch Bearbeiten Ihrer .emacs-Datei tun. Posten Sie erneut, wenn Sie Hilfe benötigen.
Übrigens, verwenden Sie Emacs in einer grafischen oder Terminal-Umgebung? In einer grafischen Umgebung mache ich das Fenster oft nur größer, wenn ich lange Zeilen habe. Oder ich kann die Zeilenverkürzung mit einer horizontalen Bildlaufleiste aktivieren.
Mit den hinzugefügten Informationen, dass Sie emacs im Terminal-Modus ausführen, wie Sie festgestellt haben, funktioniert keine dieser Optionen. Ich habe versucht, ein Beispiel mit Emacs in Putty, wo ich die Größe des Fensters ändern kann und Emacs greift es auf. Also könnte ich auf 81 Spalten skalieren und meine 80-Spalten Zeilen bleiben intakt ohne Fortsetzung. Ich bin mir nicht sicher, welchen TERM-Wert Sie mit tmux zugewiesen haben, aber Sie könnten einen benutzerdefinierten Terminaltyp (termcap oder terminfo) erstellen, der 81 Spalten unterstützt. Ich habe nur einen kurzen Blick auf tmux geworfen, aber mir ist aufgefallen, dass Sie die Größe von Fenstern in einem Terminal ändern können.
Nun, aus Neugier, was ist der Hauptmotivator für Sie mit tmux? Ich würde denken, dass die Wiederaufnahmefähigkeit wertvoll wäre. Ich würde jedoch finden, dass die anderen Funktionen nicht so nützlich sind, weil in einer X-Window-Umgebung es billig ist & amp; Einfach, mehr Terminals zu öffnen oder wenn ich Kitt verwende, kann ich mehr davon schaffen. Was die Verwendung von Emacs anbelangt, egal ob ich unter X-Window oder MS-Windows laufe, erstelle ich einfach so viele Frames wie ich möchte und kann damit ganz einfach arbeiten. Also, gibt es noch etwas, das dich interessiert, tmux zu benutzen?
Ich denke nicht, dass das im Allgemeinen möglich ist, weil emacs mindestens ein Zeichen benötigt, um anzuzeigen, dass die Zeile in der nächsten Zeile (Wraps) fortgesetzt wird, obwohl ich nicht sicher bin, weil Emacs so viele Optionen hat. Möglicherweise können Sie stattdessen im Menü "Optionen" (oder auf der Tastatur) "Zeilenumbruch (Visual Line Mode)" auswählen:
M-x
Dies macht den Fluss natürlicher, ohne (zumindest in Textmodi) die Anzeige des Einwickelns anzuzeigen.
Sechs Jahre nach den vorherigen Antworten und der Problemumgehung, die ich immer noch nutze, verwende ich 81 zeichenweite Fenster.
Leider sind 80-breite Fenster, die sich "richtig" umrunden, wegen böser Randzeichen nicht möglich. Emacs benötigt das letzte (Rand-) Zeichen, um ausschließlich die letzte Spalte zu verwenden. Das Argument hierfür ist ein optionales Randzeichen, das mehrdeutig ist. Ich träume von dem Tag, an dem jemand einen Patch einreicht, um den Fransencharakter optional zu machen und vielleicht die Mehrdeutigkeit mit einer Hintergrundfarbe zu lösen.