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
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui