On Fri, Jan 25, 2013 at 03:07:45AM -0600, Brian Lewis wrote:

> After ":silent !", vim looks blank. I have to ^L or ":redraw!" to make
> it look normal.

I decided I wanted to change this as well; simple patch is attached. It
appears that when do_shell() is called while msg_silent > 0, the screen
is not set to redraw. This may be by design, so I'm not advocating for
change, but you may find it useful.

    guns
From 548e4ab89c3c9c0b847c12391f0a53d2926c8c35 Mon Sep 17 00:00:00 2001
From: guns <s...@sungpae.com>
Date: Thu, 7 Mar 2013 18:27:56 -0600
Subject: [PATCH] Redraw screen after `silent !cmd`

do_shell() calls redraw_later_clear() only when msg_silent is zero.
---
 src/ex_cmds.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index d6bd0eb..5511829 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1038,6 +1038,9 @@ do_bang(addr_count, eap, forceit, do_in, do_out)
        windgoto(msg_row, msg_col);
 
        do_shell(newcmd, 0);
+
+       if (msg_silent)
+           redraw_later_clear();
     }
     else                               /* :range! */
     {
-- 
1.8.1.5

Attachment: pgp8lYNLbw5gF.pgp
Description: PGP signature

Raspunde prin e-mail lui