Me gustaría mostrar 3 listas de palabras en líneas separadas horizontalmente a lo largo de la parte inferior (aunque la parte superior también funcionaría) de cada cuadro de emacs que tengo abierto. He pensado en 6 formas de hacer esto, y todas tienen problemas:
Lo primero que pensé fue agregar una línea a mi línea de modo, pero AFAICT no puede usar el carácter de nueva línea en una línea de modo, simplemente se convierte a "^ J".
Mi segundo pensamiento fue tener la línea en la parte superior de la pantalla y usar la línea de encabezado, pero tampoco admite el carácter de nueva línea.
Podría mostrar una superposición en las últimas 3 líneas de la ventana, pero hacer que esto sea robusto parece difícil: el desplazamiento tendría que activarse cuando el punto llegara a la superposición en lugar del final real de la ventana, y tendría que reposicionar constantemente la superposición ya que las superposiciones están en el espacio de texto, no en el espacio de la ventana.
Podría intentar hacer ventanas dedicadas en la parte inferior del marco. He intentado codificar esto, pero tampoco es muy robusto, no parece funcionar bien cuando un marco ya contiene ventanas divididas y he tenido que volver a vincular Cx, 1 a una versión personalizada de delete-other-windows que ignora mis ventanas especiales y estoy seguro de que hay otros casos de esquina. Además, cuando se abre una ventana de ayuda ahora se abre verticalmente porque cree que ya hay una división horizontal (que técnicamente existe, pero es solo para mostrar una ventana de una línea).
Podría tener un marco dedicado para esto, pero luego mi configuración no funcionará en modo terminal, y tendría que hacer un script en mi administrador de ventanas para manejarlo en la parte inferior de la pantalla, haciéndolo no seleccionable, sin afectar el diseño, etcétera etcétera.
Podría insertar el texto de las 3 líneas directamente en el minibúfer. Obtuve esto parcialmente funcionando, puedo hacer crecer el minibúfer para acomodar las 3 líneas, y puedo mostrarlas. Sin embargo, cada vez que se hace eco de un mensaje, las líneas desaparecen hasta que emito otro comando en el momento en que vuelven a aparecer. Idealmente, las 3 líneas y el área de eco no se superpondrían para poder ver ambas. Esto sería menos molesto si pudiera filtrar de manera confiable qué mensajes van al área de eco: encontré una solución en EmacsWiki pero no parece funcionar para los mensajes que se originan en la fuente emacs C (específicamente me gustaría obtener deshacerse de los mensajes que guardan archivos porque guardo automáticamente en un temporizador).
Para el contexto, mi objetivo es mostrar constantemente las palabras que se usan con más frecuencia en el búfer actual, el punto más cercano en el búfer actual y las palabras que se usaron más recientemente en el búfer actual. Tengo la intención de poder insertarlos en el búfer a través de comandos de voz. Entonces podría decir "2 más cercano" y hacer que elija el segundo elemento de la lista de palabras punto más cercano e insertarlo. Solo me importa que las listas de palabras sean visibles para cualquier búfer que esté editando actualmente. No quiero usar las ventanas emergentes utilizadas por los diversos modos de finalización de código porque necesito que las listas estén siempre visibles.