MC executa o bash em um terminal. Ele deixa TERM
definido para o mesmo valor que o terminal em que o MC está sendo executado, mas parece que ele buffers ou filtra algumas trocas entre o shell inferior e o terminal.
Você pode querer usar diferentes personalizações quando o bash estiver sendo executado como um subprocesso direto do MC. Como o shell inferior do MC mostra apenas a linha de prompt, não há muito sentido em se preocupar com a posição do cursor: apenas adicione sistematicamente uma nova linha.
if [[ "$(ps -o comm= -p $PPID)" == "mc" ]]; then
PS1=$'\n'$PS1
else
function prompt_command {
# get cursor position and add new line if we're not in first column
echo -en "3[6n" && read -sdR CURPOS
[[ ${CURPOS##*;} -gt 1 ]] && echo "$(tput setab 1)↵$prompt_reset"
}
PROMPT_COMMAND=prompt_command
fi