¿Por qué Terminal.app está corrompiendo mi historial de tcsh?

He tenido un problema continuo que parece ser específico de OS X y Terminal.app: periódicamente, recibo basura en mi historial de tcsh que se ve así:

^[[1m^[[4mcomputername:~/Code/emacs-source ( 1827 ) $^[[0m^[[24m logout

De alguna manera, mi solicitud (incluidos los caracteres de control de marcado) se almacena como parte del historial de comandos. En mi archivo .history, los comandos corruptos se repiten con el mismo número de comando:

#+1391563259
[1m[4mcomputername:~/Code/emacs-source ( 1827 ) $[0m[24m
#+1391563259
Use "logout" to logout.
#+1391563259
[1m[4mcomputername:~/Code/emacs-source ( 1827 ) $[0m[24m logout 

Esto parece ser el resultado de cerrar las ventanas y pestañas de Terminal.app, pero no estoy seguro de por qué. Para solucionarlo, dado que tengo habilitada la combinación de historial, tuve que recurrir a cerrar todas las sesiones de tcsh y eliminar los comandos corruptos de .history. ¿Hay alguna manera de evitar que esto suceda en primer lugar?

esta no es una solución concreta, pero ¿consideró cambiar a iTerm2?

Respuestas (2)

¿Está cortando/pegando comandos y recogiendo algunos de sus avisos por accidente?

No es exactamente la respuesta que estás buscando, pero lanza sed -i.bak -e "s/\x1b[[0-9;]{1,5}m//g" .history en tu .logout o cronízalo y no debería tener que limpiarlo manualmente de nuevo.

Me había olvidado de este problema, pero aquí hay una actualización. La característica de combinación de tcsh savehist no es atómica, por lo que cerrar varias sesiones simultáneamente puede provocar la corrupción del archivo de historial:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632892

No sé si esto se ha arreglado o se arreglará; Finalmente me cansé de este y otros problemas de tcsh y cambié a bash.