Perché Terminal.app sta corrompendo la cronologia di tcsh?

4

Ho avuto un problema in corso che sembra essere specifico per OS X e Terminal.app: periodicamente, ottengo rifiuti nella mia cronologia tcsh che assomiglia a questo:

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

In qualche modo il mio prompt (inclusi i caratteri di controllo del markup) viene memorizzato come parte della cronologia dei comandi. Nel mio file .history, i comandi corrotti vengono ripetuti con lo stesso numero di 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 

Questo sembra essere il risultato della chiusura delle finestre e delle schede di Terminal.app, ma non sono sicuro del perché. Per risolvere il problema - dal momento che ho attivato la fusione della cronologia - ho dovuto ricorrere alla chiusura di tutte le sessioni tcsh e alla rimozione dei comandi corrotti da .history. C'è un modo per evitare che ciò accada in primo luogo?

    
posta Asher L. 07.02.2014 - 19:50
fonte

2 risposte

0

Mi ero dimenticato di questo problema, ma ecco un aggiornamento. La funzione tcsh savehist merge non è atomica, quindi chiudere più sessioni contemporaneamente può portare alla corruzione del file della cronologia:

link

Non so se questo è stato corretto o verrà risolto; Alla fine mi sono stufato di questo e altri problemi di tcsh e sono passato a bash.

    
risposta data 12.06.2015 - 23:41
fonte
0

Stai tagliando / incollando i comandi e raccogliendo alcuni dei tuoi prompt per sbaglio?

Non è esattamente la risposta che stai cercando, ma getti sed -i.bak -e "s / \ x1b [[0-9;] {1,5} m // g" .history nel tuo .logout o cron e non dovresti pulirlo manualmente di nuovo.

    
risposta data 11.06.2015 - 23:02
fonte

Leggi altre domande sui tag