3

The problem I have is, for example, when using undo (u in normal mode) or redo, sometimes the message, like

1 change; before #520  09:20:15

stays, but more often it flickers for a split second and is then erased. Then I have to go to :mess to read it.

The reason seems to be that the message is erased whenever the window is redrawn. (Because in cases when the line above isn't erased, if I resize the gVim window, it causes a redraw and the message disappears at that point.)

I think it would be better if the latest message were displayed until something else starts happening in the message/command line, as opposed to on redraw. But I can't find any pointers to help change that behaviour.

6
  • Probably a plugin redraw!ing, I don't think this is normal. Do you use any plugins which might be doing this?
    – Mass
    Oct 18, 2017 at 2:35
  • @Mass I moved the contents of my $VIM/plugin, $VIM/autoload, vimfiles/plugin, vimfiles/autoload directories temporarily to a different place, restarted gVim, and it's still happening. Hard to say what is causing the redraws, but it's a common event: even scrolling using the scrollbar or the mouse wheel causes a redraw. Oct 18, 2017 at 3:33
  • Sure, a resize causes a redraw. Why do you do that, if you want to read the text? Oct 18, 2017 at 5:35
  • @ChristianBrabandt The aim is for the text to remain visible after redraw. Oct 18, 2017 at 9:25
  • There is no way around it. You might want to check lazyredraw option, but I doubt this will work. Once you resize the Vim window, it must be redrawn. Oct 18, 2017 at 12:38

1 Answer 1

3

Not really what you want but you can still redirect messages to a split with such a command:

:redir @">|silent messages|redir END|split|put

Just map it to a shortcut that suits you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.