Я хотів би відобразити 3 списки слів на окремих рядках по горизонталі вздовж нижньої частини (хоча верхня частина також буде працювати) кожного відкритого в мене кадру Emacs. Я продумав 6 способів зробити це, і всі вони мають проблеми:
Першою моєю думкою було додати рядок до мого режиму, але AFAICT ви не можете використовувати символ нового рядка в рядку режиму, він просто перетворюється на "^ J".
Друга моя думка полягала в тому, щоб розташовувати рядок у верхній частині екрана та використовувати рядок заголовка, але він також не підтримує символ нового рядка.
Я міг би відобразити накладку протягом останніх 3 рядків вікна, але зробити це надійним здається важко - прокручування потрібно буде запускати, коли точка доходить до накладання, а не до реального кінця вікна, і мені доведеться постійно перестановляти накладання, оскільки накладки знаходяться в текстовому просторі, а не у вікні.
Я міг би спробувати зробити виділені вікна в нижній частині кадру. Я спробував це кодувати, але він не дуже надійний, він, здається, не працює, коли кадр вже містить розділені вікна, і мені довелося відновлювати Cx, 1 на користувальницьку версію delete-other-windows, яка ігнорує мої спеціальні вікна, і я впевнений, що є інші кутові шафи. Також, коли відкриється вікно довідки, воно відкривається вертикально, тому що він вважає, що горизонтальний розкол вже є (який технічно є, але це лише для відображення вікна з одним рядком).
Я міг би мати виділений кадр для цього, але тоді моя конфігурація не працюватиме в термінальному режимі, і мені доведеться скриптувати свій віконний менеджер, щоб утримувати його в нижній частині екрана, роблячи його невибірним, не впливаючи на макет, тощо.
Я міг би вставити текст для 3-х рядків безпосередньо в мінібуфер. У мене це частково працює, я можу виростити мінібуфер для розміщення трьох ліній, і я можу їх відобразити. Однак кожного разу, коли будь-яке повідомлення лунає, рядки зникають, поки я не видаю іншу команду, в який момент вони знову з’являться. В ідеалі 3 лінії та зона ехо не перетинатимуться, тому я міг бачити і те, і інше. Це було б менш набридливо, якби я міг надійно відфільтрувати, які повідомлення надходять у зону ехо - я знайшов рішення на EmacsWiki, але це, здається, не працює для повідомлень, що походять із джерела emacs C (конкретно я хотів би отримати позбутися повідомлень про збереження файлів, оскільки я автоматично зберігаю на таймері).
У контексті, моя мета - постійно відображати слова, які найчастіше використовуються в поточному буфері, слова, найближчі точки в поточному буфері, та слова, які останнім часом використовуються в поточному буфері. Я маю намір мати можливість вставити їх у буфер за допомогою голосових команд. Тож я міг би сказати "найближчий 2" і запропонувати йому вибрати другий пункт із списку слів найближчого пункту та вставити його. Мене хвилює лише те, щоб списки слів були видимі для будь-якого буфера, який я зараз редагую. Я не хочу використовувати спливаючі вікна, які використовуються в різних режимах заповнення коду, тому що мені потрібні списки, які завжди відображаються.