Vorrei visualizzare 3 elenchi di parole su righe separate orizzontalmente lungo la parte inferiore (anche se top funzionerebbe anche) di ogni frame di emacs che ho aperto. Ho pensato a 6 modi per farlo, e tutti hanno problemi:
Il mio primo pensiero è stato quello di aggiungere una linea alla mia linea di modalità, ma AFAICT non puoi usare il carattere di nuova riga in una linea di modalità, viene semplicemente convertito in "^ J".
Il mio secondo pensiero è stato quello di avere la linea nella parte superiore dello schermo e usare la linea di intestazione, ma non supporta nemmeno il carattere di nuova riga.
Potrei visualizzare una sovrapposizione sopra le ultime 3 righe della finestra, ma rendere questo robusto sembra difficile: lo scorrimento dovrebbe essere attivato quando il punto raggiunge la sovrapposizione anziché la fine reale della finestra, e dovrei riposizionare costantemente la sovrapposizione poiché le sovrapposizioni sono nello spazio di testo e non nello spazio della finestra.
Potrei provare a creare finestre dedicate nella parte inferiore della cornice. Ho provato a codificarlo, ma non è nemmeno molto robusto, non sembra funzionare bene quando un frame contiene già finestre divise e ho dovuto ricollegare Cx, 1 a una versione personalizzata di delete-other-windows che ignora le mie finestre speciali e sono sicuro che ci sono altri casi d'angolo. Inoltre, quando una finestra di aiuto si apre ora si apre verticalmente perché pensa che ci sia già una divisione orizzontale (che tecnicamente c'è ma è solo per visualizzare una finestra di una riga).
Potrei avere un frame dedicato per questo, ma poi la mia configurazione non funzionerà in modalità terminale e dovrei scriptare il mio gestore di finestre per gestirlo mantenendolo nella parte inferiore dello schermo, rendendolo non selezionabile, senza influire sul layout, ecc ecc.
Potrei inserire il testo per le 3 righe direttamente nel minibuffer. L'ho parzialmente funzionato, posso far crescere il minibuffer per accogliere le 3 linee e posso visualizzarle. Tuttavia, ogni volta che viene riprodotto un messaggio, le righe scompaiono fino a quando non emetto un altro comando, a quel punto riappaiono. Idealmente le 3 linee e l'area dell'eco non si sovrappongono, così potrei vedere entrambe. Ciò sarebbe meno fastidioso se potessi filtrare in modo affidabile quali messaggi vanno nell'area di eco - ho trovato una soluzione su EmacsWiki ma non sembra funzionare per i messaggi che hanno origine nella sorgente C di emacs (in particolare mi piacerebbe ottenere sbarazzarsi dei file salvando i messaggi perché mi salva spesso su un timer).
Per il contesto, il mio obiettivo è quello di avere costantemente una visualizzazione delle parole utilizzate più frequentemente nel buffer corrente, le parole punto più vicino nel buffer corrente e le parole utilizzate più di recente nel buffer corrente. Intendo essere in grado di inserirli nel buffer tramite comandi vocali. Quindi potrei dire "2 più vicini" e farlo scegliere il secondo elemento dall'elenco di parole punto più vicino e inserirlo. Mi interessa solo che gli elenchi di parole siano visibili per qualsiasi buffer che sto attualmente modificando. Non voglio usare le finestre pop-up usate dalle varie modalità di completamento del codice perché ho bisogno che gli elenchi siano sempre visibili.