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 foo
y 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 bar
y 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 ~/.zshrc
despué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 Bash
los 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.