Loading ...
Sorry, an error occurred while loading the content.

52249Re: Bug: :echo output missing with QuickFix and Command-line windows

Expand Messages
  • Michael Henry
    Nov 2, 2008
      Bram Moolenaar wrote:
      > Michael Henry wrote:
      >> It appears that the output from :echo and :echomsg does not
      >> show up properly when used from the Command-line window
      >> while a QuickFix window is open.

      > If you use:
      > :echo "hello\nthere"
      > You get the hit-enter prompt before redrawing te display. So it's
      > indeed that closing the command-line window causes a redraw and that
      > clears the message.
      > Forcing the hit-enter prompt would be a solution, but at the same time
      > may annoy quite a few users.
      Yes, that would be annoying :-)
      > I'll make a remark in the todo list if it's possible to redraw without
      > erasing the message. Don't expect this soon though.
      Intuitively, I'd imagined that forcing a redraw when the command-line
      window closes but before the command is executed might fix the problem.
      I poked around a little bit this morning and made the following two-line
      patch against Vim 7.2.25:

      --- vim72/src/ex_getln.c.orig 2008-11-02 07:34:57.000000000 -0500
      +++ vim72/src/ex_getln.c 2008-11-02 07:30:20.000000000 -0500
      @@ -6247,6 +6247,8 @@
      # endif

      + update_screen(0);
      + out_flush();
      return cmdwin_result;
      #endif /* FEAT_CMDWIN */

      This fixes the symptoms I'm seeing, though I really have no idea how
      wrong-headed this approach might be. I just stepped through the code to
      see how re-drawing gets triggered, then added these calls to
      update_screen(0) and out_flush() at the end of the ex_window()
      function. I didn't study how the code works in-depth, so the patch may
      well have some subtle problem related to the details of Vim's
      implementation. At a higher level, however, I think it's a reasonable
      trade-off to force an "extra" screen redraw when exiting the
      command-line window. It has the right feel to me to pop up a temporary
      editing window for command-line history, grab a new command to execute,
      close the temporary window, and tidy up by re-drawing everything,
      leaving no trace that the user didn't just type the command at the ex

      Does this fix seem reasonable, perhaps with some tweaking?

      Michael Henry

      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
    • Show all 5 messages in this topic