Ich möchte 3 Wortlisten in separaten Zeilen horizontal am unteren Rand (obwohl oben auch funktionieren würde) jedes geöffneten Emacs-Frames anzeigen. Ich habe über 6 Möglichkeiten nachgedacht, und alle haben Probleme:
Mein erster Gedanke war, meiner Mode-Zeile eine Zeile hinzuzufügen, aber AFAICT Sie können das Newline-Zeichen nicht in einer Mode-Zeile verwenden, es wird nur in "^ J" konvertiert.
Mein zweiter Gedanke war, die Zeile über den oberen Bildschirmrand zu ziehen und die Kopfzeile zu verwenden, aber das Zeilenumbruch-Zeichen wird auch nicht unterstützt.
Ich könnte ein Overlay über den letzten drei Zeilen des Fensters anzeigen, aber es scheint schwierig, dieses robust zu machen. Das Scrollen müsste ausgelöst werden, wenn der Punkt das Overlay erreicht und nicht das eigentliche Ende des Fensters, und ich müsste es ständig neu positionieren Die Überlagerung, da Überlagerungen im Textbereich und nicht im Fensterbereich liegen.
Ich könnte versuchen, spezielle Fenster am unteren Rand des Rahmens zu erstellen. Ich habe versucht, dies zu codieren, aber es ist auch nicht sehr robust. Es scheint nicht richtig zu funktionieren, wenn ein Frame bereits geteilte Fenster enthält und ich Cx, 1 erneut an eine benutzerdefinierte Version von delete-other-windows binden musste, die ignoriert Meine Spezialfenster und ich bin mir sicher, dass es noch andere Eckverkleidungen gibt. Auch wenn ein Hilfefenster jetzt geöffnet wird, wird es vertikal geöffnet, weil es denkt, dass es bereits eine horizontale Aufteilung gibt (was technisch gesehen der Fall ist, aber es wird nur ein einzeiliges Fenster angezeigt).
Ich könnte einen dedizierten Frame dafür haben, aber dann funktioniert meine Konfiguration im Terminalmodus nicht und ich müsste meinen Fenstermanager per Skript so einstellen, dass er am unteren Bildschirmrand bleibt und nicht ausgewählt werden kann, ohne das Layout zu beeinträchtigen. usw. usw.
Ich könnte den Text für die 3 Zeilen direkt in den Minipuffer einfügen. Ich habe dies teilweise funktioniert, ich kann den Minipuffer vergrößern, um die 3 Zeilen aufzunehmen, und ich kann sie anzeigen. Jedes Mal, wenn eine Nachricht zurückgesendet wird, verschwinden die Zeilen, bis ich einen anderen Befehl erteile und sie wieder angezeigt werden. Idealerweise überlappen sich die drei Linien und der Echobereich nicht, sodass ich beide sehen kann. Dies wäre weniger ärgerlich, wenn ich zuverlässig filtern könnte, welche Nachrichten in den Echobereich gelangen. Ich habe eine Lösung in EmacsWiki gefunden, aber es scheint nicht für Nachrichten zu funktionieren, die aus der Emacs-C-Quelle stammen (speziell, die ich erhalten möchte) die dateispeichermeldungen loswerden, da ich oft auf einen timer autospeichere).
Für den Kontext ist es mein Ziel, ständig eine Anzeige der am häufigsten verwendeten Wörter im aktuellen Puffer, der Wörter am nächsten Punkt im aktuellen Puffer und der zuletzt im aktuellen Puffer verwendeten Wörter zu haben. Ich beabsichtige, sie über Sprachbefehle in den Puffer einfügen zu können. Also könnte ich "nächste 2" sagen und den zweiten Punkt aus der Liste der Wörter, die dem nächsten Punkt am nächsten sind, auswählen und einfügen. Mir ist nur wichtig, dass die Wortlisten für den Puffer angezeigt werden, den ich gerade bearbeite. Ich möchte nicht die Popup-Fenster verwenden, die von den verschiedenen Codevervollständigungsmodi verwendet werden, da die Listen immer sichtbar sein müssen.