In Emacs führt Ce in Kombination mit dem Visual-Line-Modus und den Toggle-Truncate-Linien nicht zum Zeilenende. Wie kann ich das beheben?

626
Andrew Larned

Wenn diese visual-line-modeOption in Emacs aktiviert ist, werden bei natürlichen Zeilenumbrüchen lange Zeilen eingefügt, sodass ich den gesamten Text in einer bestimmten Zeile sehen kann. Wraperscheint in meiner Statusleiste. Manchmal möchte ich die Zeilen nicht umbrechen. Ich kann diesen Zustand durch einen Befehl wechseln: M-x visual-line-mode. Wenn ich das tue, C-eführe ich mich jedoch nicht bis zum Ende der Zeile, sondern irgendwo hin zu einer "Bildschirmbreite" oder so, obwohl es scheinbar variabel ist.

Ich kann dieses Problem beheben, indem ich M-x toggle-truncate-linesnach dem Ausführen von aufrufe. M-x visual-line-modeIch möchte jedoch einen einzigen Funktionstastenbefehl verwenden, um beide Befehle nacheinander auszuführen.

In meiner .emacsDatei habe ich derzeit folgendes:

(global-set-key [f8] 'toggle-truncate-lines) (global-set-key [f9] 'visual-line-mode) 

Wenn diese Tasten definiert sind, kann ich die Funktionstasten f9und f8nacheinander verwenden, um die gewünschten Ergebnisse zu erhalten. Ich dachte, ich könnte eine elisp-Funktion schreiben, um die beiden Funktionen nacheinander aufzurufen, und dann dieser Funktion eine einzige Funktionstaste zuordnen:

(defun unwrap-lines () "Unwrap lines, and fix the C-e not to the end problem" (interactive) (visual-line-mode) (toggle-truncate-lines))  (global-set-key [f10] 'unwrap-lines) 

Nachdem Sie diese Funktion definiert haben, scheint sie jedoch nur den zweiten Befehl in meiner Funktion aufzurufen toggle-truncate-lines, und überspringt den visual-line-modeAspekt der Funktion.

Was mache ich falsch?

1
Der visuelle Linienmodus ist mit dem (visuellen Linienmodus -1) deaktiviert. Möglicherweise möchten Sie auch sicherstellen, dass Sie nicht den "globalen visuellen Linienmodus" verwenden, der alles beeinflusst. lawlist vor 10 Jahren 1
Thatnks! Das war der Teil, den ich vermisst habe. Andrew Larned vor 10 Jahren 0

0 Antworten auf die Frage