Gostaria de exibir 3 listas de palavras em linhas separadas horizontalmente ao longo da parte inferior (embora a parte superior também funcione) de todos os quadros do emacs que eu abrir. Eu pensei em 6 maneiras de fazer isso, e todos eles têm problemas:
Meu primeiro pensamento foi adicionar uma linha à minha linha de modo, mas AFAICT você não pode usar o caractere de nova linha em uma linha de modo, apenas é convertido em "^ J".
Meu segundo pensamento foi ter a linha na parte superior da tela e usar a linha de cabeçalho, mas também não suporta o caractere de nova linha.
Eu poderia exibir uma sobreposição nas últimas 3 linhas da janela, mas, para tornar isso robusto, parece difícil - a rolagem precisaria ser acionada quando o ponto atingisse a sobreposição e não o final real da janela, e eu teria que reposicionar constantemente a sobreposição, pois as sobreposições estão no espaço de texto e não na janela.
Eu poderia tentar criar janelas dedicadas na parte inferior do quadro. Eu tentei codificar isso, mas também não é muito robusto, parece não funcionar corretamente quando um quadro já contém janelas divididas e eu tive que religar o Cx, 1 para uma versão personalizada do delete-other-windows que ignora minhas janelas especiais e tenho certeza de que existem outros casos de canto. Além disso, quando uma janela de ajuda se abre agora, ela se abre verticalmente porque acha que já existe uma divisão horizontal (o que tecnicamente existe, mas é apenas para exibir uma janela de uma linha).
Eu poderia ter um quadro dedicado para isso, mas minha configuração não funcionará no modo terminal, e eu teria que criar um script para o meu gerenciador de janelas para mantê-lo na parte inferior da tela, tornando-o não selecionável, sem afetar o layout, etc etc.
Eu poderia inserir o texto para as 3 linhas diretamente no minibuffer. Eu consegui isso parcialmente trabalhando, posso aumentar o minibuffer para acomodar as 3 linhas e posso exibi-las. No entanto, sempre que uma mensagem é repetida, as linhas desaparecem até que eu emita outro comando, no qual elas reaparecem. Idealmente, as 3 linhas e a área de eco não se sobrepunham para que eu pudesse ver as duas. Isso seria menos irritante se eu pudesse filtrar com segurança quais mensagens vão para a área de eco - encontrei uma solução no EmacsWiki, mas ela não parece funcionar para mensagens originadas na fonte C do emacs (especificamente, eu gostaria de receber livrar-me das mensagens de salvamento de arquivos porque eu sempre salvei automaticamente em um timer).
Para contextualizar, meu objetivo é exibir constantemente as palavras mais usadas no buffer atual, as palavras mais próximas do buffer atual e as palavras usadas mais recentemente no buffer atual. Pretendo inseri-los no buffer por meio de comandos de voz. Então, eu poderia dizer "mais próximo de 2" e pedir para ele escolher o segundo item da lista de palavras mais próximo e inseri-lo. Eu só me importo com o fato de as listas de palavras serem visíveis para qualquer buffer que estou editando no momento. Não quero usar as janelas pop-up usadas pelos vários modos de conclusão de código porque preciso das listas sempre visíveis.