Редактировать: Я только что заметил переменную message-truncate-lines
и, в отличие от resize-mini-windows
и max-mini-window-height
, я могу заставить ее вести себя так, как я хочу:
(defadvice save-buffer (around my-save-mini-window-size)
"Don't increase the size of the echo area if the path of the file being saved is too long to show on one line."
(let ((message-truncate-lines t))
ad-do-it))
(ad-activate 'save-buffer)
следует оригинальный ответ (и мне интересно знать, почему установка других переменных с подобным советом не дает желаемого эффекта, если кто-нибудь может уточнить это?)
Я думаю,возиться с самим сообщением будет довольно сложно (и в любом случае это плохая идея).write-region
(в fileio.c) действительно говорит о своих аргументах If VISIT is neither t nor nil nor a string, that means do not display the "Wrote file" message
, но я сильно сомневаюсь, что принудительное применение было бы разумным.
Я думаю, что единственный здравый подход - это предотвратить изменение размера минибуфера независимо отдлина сообщения.Следующее будет делать это, но для большего количества ситуаций, чем просто сохранение файла:
(setq resize-mini-windows nil)
Мой обычный подход здесь - написать несколько советов для функции, которая нас интересует (я думал save-buffer
), чтобы временно установить это значение, но по какой-либо причине это не дает желаемого эффекта.
Аналогично использованию before-save-hook
и after-save-hook
для установки и восстановления.
Также естьпеременная max-mini-window-height
, но при попытке ее временной установки возникает та же проблема.