Esto podría hacerse con el siguiente comando (antes de iniciar mc):
export PROMPT_COMMAND="history -a; history -r"
Si desea que sea permanente, debe agregarlo a su ~/.bashrc
. Pero hará que todo el historial de shell sea global, lo cual no es lo mejor. Si no desea este efecto secundario, debe agregar la siguiente línea en lugar de la anterior:
alias mc='PROMPT_COMMAND="history -a; history -r" mc; history -r'
Explicación:
PROMPT_COMMAND
se ejecuta justo antes de que bash muestre un aviso. Más lecturas aquí.
history
debe llamarse con el parámetro append, y luego con el parámetro read. Más lecturas aquí.
Por alguna razón, el PROMPT_COMMAND
solución en un mc
alias, como lo sugirió el usuario szkj, no funcionó correctamente para mí. Si bien conservó los comandos ejecutados en la subcapa MC, los comandos ingresados antes de iniciar MC se perdieron después de salir.
Finalmente, uso lo siguiente en ~/.bashrc
, sin un mc
alias. Parece funcionar bien a pesar de que mc
sobrescribe $PROMPT_COMMAND
.
export HISTCONTROL=ignoreboth
shopt -s histappend
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Esto es lo que obtengo:
# echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
1: before starting MC. PROMPT_COMMAND=history -a; history -c; history -r;
# mc
# echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
2: Inside MC. PROMPT_COMMAND=pwd>&8;kill -STOP $$
# history | tail -3
3038 echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3039 echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3040 history | tail -3
# echo "3: Going to exit MC with F10."
3: Going to exit MC with F10.
# echo "4: Back in Bash after MC"
4: Back in Bash after MC
# history | tail -7
3038 echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3039 echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
3040 history | tail -3
3041 echo "3: Going to exit MC with F10."
3042 mc
3043 echo "4: Back in Bash after MC"
3044 history | tail -7
Mi sistema es:
# cat /etc/debian_version
8.1
# bash --version | head -1
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
# mc --version | head -1
GNU Midnight Commander 4.8.13
# uname -a
Linux afnet 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux