问题是当每次保存文件路径很长时,迷你缓冲区高度会增加并且基本上会立即收缩。有点讨厌,因为经常发生。
所以我想要缩短(basename?)“write:...”消息或者使默认(起始)迷你缓冲区高度为2行。或者可能只在迷你缓冲区中启用截断,但这并不是很好。
有办法吗?
答案 0 :(得分:4)
修改:我刚刚注意到message-truncate-lines
变量,与resize-mini-windows
和max-mini-window-height
不同,我实际上可以按照我想要的方式行事:< / p>
(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
变量,但在尝试临时设置时似乎会遇到同样的问题。