我在我的 ConEmu shell 中观察到一种奇怪的行为:
当我水平调整 ConEmu 窗口大小并启用 clink 时,完成调整大小后,将再次打印 shell 提示符:
这真的很烦人,并且会在每次调整大小等操作中发生,例如分割、移动分割等。
在我的启动批处理中我使用以下代码来设置提示(与 conemu 的默认 cmd 任务相同):
::
:: Form the command prompt
::
:: This will start prompt with `User@PC `
set ConEmuPrompt0=$E[32m$E]9;8;"USERNAME"$E\@$E]9;8;"COMPUTERNAME"$E\$S
:: Followed by colored `Path`
set ConEmuPrompt1=%ConEmuPrompt0%$E[92m$P$E[90m
if NOT "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
if "%PROCESSOR_ARCHITEW6432%" == "AMD64" if "%PROCESSOR_ARCHITECTURE%" == "x86" (
rem Use another text color if cmd was run from SysWow64
set ConEmuPrompt1=%ConEmuPrompt0%$E[93m$P$E[90m
)
)
:: Carriage return and `$` or `>`
:: Spare `$E[90m` was specially added because of GitShowBranch.cmd
if "%ConEmuIsAdmin%" == "ADMIN" (
set ConEmuPrompt2=$_$E[90m$$
) else (
set ConEmuPrompt2=$_$E[90m$G
)
:: Finally reset color and add space
set ConEmuPrompt3=$E[m$S$E[0m
:: Set the prompt
prompt %ConEmuPrompt1%%ConEmuPrompt2%%ConEmuPrompt3%
到目前为止,我的观察是:1.仅当注入 clink 时才会出现问题。2.仅当提示符中也有换行符时才会出现问题。
我认为在调整大小时,clink 会以某种错误的方式擦除并重新打印提示。通过启用 clink 功能并尝试水平调整窗口大小,可以在 vanilla ConEmu 上轻松重现此问题。
我距离完美的 Windows Shell 只有一步之遥...
任何帮助都值得感激。
EDIT1:刚刚通过在 Console2 中测试确认了这是一个 clink 问题。