¿Cómo puedo obtener la Terminal para mantener un historial separado por pestaña / ventana?

12

Cuando reinicio mi Mac, se cierra y guarda los buffers de cada pestaña correctamente, ya que vuelve a estar allí cuando la computadora se reinicia. Pero el historial de comandos no se almacena correctamente en la ventana / pestaña. Todos son el mismo búfer.

Supongo que es porque bash usa el mismo ~/.bash_history para todas las terminales, pero ¿hay una manera de evitar mejorar esto? Para hacer bash, o tal vez Terminal, almacenarlos por separado?

    
pregunta Robert Sköld 20.02.2012 - 10:34

3 respuestas

7

Podrías hacer algo como esto en tu .bashrc :

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

Esto creará archivos de historial separados en su directorio de inicio como .bash_history_ttys002 . Cuando cree una nueva ventana de terminal, utilizará el archivo de historial correspondiente al nombre de tty, que generalmente se determinará simplemente por el orden en que cree las ventanas de terminal.

    
respondido por el Seth Noble 21.02.2012 - 17:12
4

Implementé esto agregando

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

a mi archivo ~/.bash_profile . Ahora cuando cierro el terminal y lo abro nuevamente, cada pestaña tiene su historial de comandos separado restaurado. También cuando creo una nueva pestaña, el historial predeterminado se inicializa desde .bash_history

También para hacer que la aplicación Terminal mantenga las pestañas abiertas entre salir y reiniciar, debes asegurarte de que la opción "close windows when quitting app" (on Yosemite) esté deshabilitada en System Preferences -> General .

    
respondido por el Mikael Lepistö 27.10.2015 - 10:17
0

Puede establecer un $ HISTFILE personalizado para cada una de sus instancias de Terminal.

    
respondido por el Vlad 20.02.2012 - 10:45

Lea otras preguntas en las etiquetas