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 @@
setmouse();
# 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
prompt.
Does this fix seem reasonable, perhaps with some tweaking?
Thanks,
Michael Henry
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---