iTerm2 (versión 3): ¿Historial individual por pestaña?

iTerm2 (versión 3): ¿Historial individual por pestaña?

Estoy usando iTerm2 (versión 3) y me gusta. Pero algo que viene haciendo desde hace un tiempo y que es realmente molesto es que el historial de comandos se comparte entre pestañas. Por ejemplo, en su primera pestaña, ejecute comando fooy comando bar, luego vaya a su segunda pestaña y ejecute say Hello, y luego regrese a la primera pestaña; Me gustaría y espero que la flecha hacia arriba sugiera bary luego foo, pero en lugar de eso sugerirá say Hello.

¿Hay alguna manera de corregir este comportamiento?

Respuesta1

Si está utilizando zsh, agregue estas dos líneas ~/.zshrcdespués de la líneasource $ZSH/oh-my-zsh.sh

unsetopt inc_append_history
unsetopt share_history

De zshoptions(1) - página de manual de Linux:

INC_APPEND_HISTORY

Esta opción funciona como APPEND_HISTORY excepto que las nuevas líneas del historial se agregan a $HISTFILE de forma incremental (tan pronto como se ingresan), en lugar de esperar hasta que se cierre el shell.

COMPARTIR_HISTORIA

Esta opción importa nuevos comandos del archivo de historial y también hace que los comandos escritos se agreguen al archivo de historial (esto último es como especificar INC_APPEND_HISTORY).

El cartel ha indicado que esta era más bien la opción que buscaba:

APLICACIÓNEND_HISTORY

Si se configura esto, las sesiones zsh agregarán su lista de historial al archivo de historial, en lugar de reemplazarlo. Por lo tanto, en varias sesiones zsh paralelas se agregarán las nuevas entradas de sus listas de historial al archivo de historial, en el orden en que salen.

Respuesta2

Información adicional a la respuesta perfecta de harrymc.

Esto no es Iterm2 sino una característica de zsh que se activa de forma predeterminada si usaoh-mi-zsh

(ver:https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh)

Así que colóquelos en su archivo .zshrc después source $ZSH/oh-my-zsh.sh(vea la respuesta de harrymc)

unsetopt inc_append_history
unsetopt share_history

Respuesta3

Puede configurar su variable de entorno HISTFILE en algo único, pero lo que hago es simplemente desarmarla en mi archivo .bashrcarchivo:

export HISTFILE=""

pero no me importa mantener mi historial en un archivo. Al desarmar, la historia simplemente se guarda en la memoria.

Respuesta4

Para Bashlos usuarios, simplemente agregue estas dos líneas en su~/.bashrc

shopt -s histappend
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"

Asegúrate de abrir una nueva pestaña para que esto surta efecto.

información relacionada