Screen clearing in CMD without "Legacy Console Mode"

Takashi Yano
Fri Apr 30 14:53:58 GMT 2021

On Fri, 30 Apr 2021 08:25:12 -0600
Kevin Locke wrote:
> Hi All,
> I'm investigating an issue in Git for Windows[^1], which also affects
> Cygwin.  The issue is that, when using CMD (i.e. Command Prompt) on
> Windows 10 1703 or above with "Legacy Console Mode"[^2] disabled, if
> TERM=cygwin is set in the environment, the console is not cleared when
> vi exits.  To demonstrate, with Cygwin 3.2.0, in CMD with "Legacy
> Console Mode" disabled:
> cd C:\cygwin64
> set TERM=cygwin
> bin\vi etc\bash.bashrc
> :q
> After exiting vi, the console window has not been cleared and content
> from etc\bash.bashrc remains visible, making further use of the console
> difficult until cleared.
> The difference appears to result from enabling
> SetConsoleMode(ENABLE_VIRTUAL_TERMINAL_INPUT)[^3] to behave like
> xterm-256color when supported[^4] (they are not supported in "Legacy
> Console Mode").
> I'm not too familiar with TTY/PTY handling, much less Cygwin on top of
> CMD.  It's not clear to me if the alternate screen buffer behaves
> differently in CMD than xterm, whether Cygwin has any responsibility, or
> if the issue is in how CMD handles ANSI escape sequences.  Johannes
> Schindelin suggested it may make sense not to enable virtual terminal
> processing when TERM=cygwin is set.[^5]  Thoughts?
> Any advice or assistance for how to address this issue would be
> appreciated.
> Thanks,
> Kevin
> [^1]:
> [^2]:
> [^3]:;a=blob;f=winsup/cygwin/;h=ebe89fc9f8fd9fcb8102ee9884b8b91f04e88fb1;hb=5eb232ede72e394e280d1a23131267c7002d2c52#l464
> [^4]:;a=blob;f=winsup/cygwin/;h=ebe89fc9f8fd9fcb8102ee9884b8b91f04e88fb1;hb=5eb232ede72e394e280d1a23131267c7002d2c52#l1327
> [^5]:

Why on earth do you want to set TERM=cygwin?
If you don't set TERM=cygwin, TERM is automatically set to
xterm-256color, in which the issue does not occur.

Takashi Yano <>

More information about the Cygwin mailing list