Come posso ottenere che il Terminale mantenga una cronologia separata per tab / finestra?

12

Quando riavvio il mio Mac si chiude e salva i buffer per ogni scheda in modo corretto, poiché è di nuovo lì quando il computer si riavvia. Ma la cronologia dei comandi non è bufferizzata correttamente per finestra / scheda. Sono tutti lo stesso buffer.

Suppongo che sia perché bash usa lo stesso ~/.bash_history per tutti i terminali ma c'è un modo per avoid migliorare questo? Per rendere bash, o forse Terminal, memorizzarli separatamente?

    
posta Robert Sköld 20.02.2012 - 10:34
fonte

3 risposte

7

Potresti fare qualcosa di simile in .bashrc :

MYTTY='tty'
HISTFILE=$HOME/.bash_history_'basename $MYTTY'

Ciò creerà file di cronologia separati nella tua home directory come .bash_history_ttys002 . Quando crei una nuova finestra di terminale, utilizzerà il file di cronologia corrispondente al nome di tty, che di solito sarà determinato semplicemente dall'ordine in cui crei le finestre del terminale.

    
risposta data 21.02.2012 - 17:12
fonte
4

L'ho implementato aggiungendo

export HISTFILE="$HOME/.bash_history_$TERM_SESSION_ID"
if [ ! -e $HISTFILE ]; then cp "$HOME/.bash_history" "$HISTFILE"; fi

al mio file ~/.bash_profile . Ora quando chiudo il terminale e lo apro di nuovo, ogni scheda ha la sua cronologia dei comandi separata ripristinata. Inoltre, quando creo una nuova scheda, la cronologia predefinita viene inizializzata da .bash_history

Anche per creare Terminal app per preservare le schede aperte tra quit e restart devi assicurarti che l'opzione "close windows when quitting app" (on Yosemite) sia disabilitata in System Preferences -> General .

    
risposta data 27.10.2015 - 10:17
fonte
0

Puoi impostare un $ HISTFILE personalizzato per ciascuna istanza di Terminal.

    
risposta data 20.02.2012 - 10:45
fonte

Leggi altre domande sui tag