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.

  • 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 '17 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. – Evgeni Sergeev Oct 18 '17 at 3:33
  • Sure, a resize causes a redraw. Why do you do that, if you want to read the text? – Christian Brabandt Oct 18 '17 at 5:35
  • @ChristianBrabandt The aim is for the text to remain visible after redraw. – Evgeni Sergeev Oct 18 '17 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. – Christian Brabandt Oct 18 '17 at 12:38
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, privacy policy and cookie policy

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