Using Insert/Overwrite mode in ConEmu’s consoles
Let’s talk about console applications only. ConEmu can’t know anything about state of ChildGui applications because they have its own input queue and graphical interface.
In some cases you may choose initial mode via ConInMode
ConEmu settings, or via specific CLI options,
for example EditMode in TCC/LE.
But in general there is no way to determine Insert or Overwrite mode is used in runtime, and there will be no INS/OVR indicator in the Status Bar.
Why not? Read below.
Some techinfo
Simplitying, there are two ways in Windows Api allowing to read input from keyboard:
All others functions like PowerShell’s Read-Host, C’s getc or gets, or actually any other command line interpreter prompts will call one of the functions above.
ReadConsoleInput
ReadConsoleInput
is used in those applications
which needs more deep console control or able
to process mouse events.
Few examples: Vim or emacs editors,
Far Manager, Hiew,
and actually any shell like bash or zsh from
cygwin or msys packages.
Neither ConEmu nor Windows does not know anything
about these applications activities, what they will do
with keypresses posted into their input queue.
For example you are enabling ‘Insert’ mode in Vim
by pressing i
key. But there is no ‘right’ way
to determine current Vim mode.
Bottom line. ConEmu can’t show INS/OVR indication in that case because only console application decides what it will do with read keypress.
ReadConsole and ReadFile
Functions
ReadConsole
and ReadFile
are more easy and
are usually used in CLI prompts like cmd.exe, python and others.
During these functions calls the RealConsole
(but not ConEmu) decides which mode is used, Insert or Overwrite.
You may switch mode by pressing Insert
key.
However, due to another Windows bug it is absolutely impossible to determine this mode. Even cursor size changes aren’t reflected by WinApi.