How do I get emacs to show a short (not full) file path in the minibuffer when saving?
The problem is that the file path is quite long every time I save it, the minibuffer height grows and basically shrinks right away. The view is annoying because it happens so often.
So, I want to either shorten (basename?) The message "wrote: ..." or set the default minibuffer height (starting at 2 lines). Or it is possible to enable truncation only in the minibuffer, but this is not good.
Is there a way?
source to share
Edit: I just noticed a variable message-truncate-lines
and, unlike resize-mini-windows
and max-mini-window-height
, I can get it to behave the way I want:
(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)
follows the original answer (and I'm curious to know why setting other variables with similar advice doesn't have the desired effect, if anyone can elaborate on that?)
I think messing around with the post itself would be pretty hairy (and a bad idea anyway). write-region
(in fileio.c) does talk about its arguments If VISIT is neither t nor nil nor a string, that means do not display the "Wrote file" message
, but I highly doubt that would be reasonable.
I think the only sane approach is to prevent the minibuffer from resizing regardless of the message length. The following will do it, but for more situations than just saving a file:
(setq resize-mini-windows nil)
My normal approach here would be to write some advice for the function we're interested in (I thought save-buffer
) to temporarily set this value, but for whatever reason that doesn't have the desired effect.
Similarly, the use of before-save-hook
and after-save-hook
for its installation and recovery.
There is also a variable max-mini-window-height
, but trying to set it temporarily brings up the same issue.
source to share