2 votos

Cómo desactivar la compartición del historial entre pestañas de iTerm2 cuando no se encuentra el comando setopt

Estoy experimentando el mismo problema que en esta pregunta: El historial se comparte entre las pestañas de mi terminal iTerm2: ¿cómo puedo desactivarlo? . Como describe el usuario, mi historial se comparte entre diferentes pestañas y Windows en iTerm2, lo que es muy molesto.

No puedo utilizar la solución sugerida a la pregunta enlazada, ya que no puedo utilizar el setopt comando:

-bash: setopt: command not found

Estoy usando iTerm2 Build 3.0.12 en OS X El Capitan, 10.11.6 y GNU bash, versión 3.2.57(1)-release (x86_64-apple-darwin15) y tmux 2.3. Cuando inicio sólo tmux, también estoy recibiendo el siguiente mensaje de error:

tmux
-bash: iterm2_preexec_invoke_cmd: command not found

Borrar mi perfil/configuración de usuario de iTerm2 y empezar con un iTerm2 "nuevo", no personalizado, no ayudó.

¿Alguno de ustedes tiene una idea de lo que podría probar? Gracias.

Editar :

Aquí está la salida de shopt -p | grep histappend :

$ shopt -p | grep histappend
shopt -u histappend

y echo $PROMPT_COMMAND

$ echo $PROMPT_COMMAND
history -a; history -c; history -r; date | xargs echo -n >>~/.bash_history_workingdir; echo -n ' - ' >>~/.bash_history_workingdir; pwd | xargs echo -n >>~/.bash_history_workingdir; echo -n ' - ' >>~/.bash_history_workingdir; tail -n 1 /Users/tabea/.bash_eternal_history >>~/.bash_history_workingdir; iterm2_preexec_invoke_cmd

Mi resultado para $PROMPT_COMMAND parece tan largo, desde que cambié el comportamiento por defecto del comando history, para mantener un historial bash "eterno" (basado en esta respuesta ). Nunca sospeché que esto pudiera causar el extraño comportamiento de "shared-history-in-iTerm", ya que he tenido esto en mi ~/.bashrc ya antes de que empezara el problema.

La parte relevante de mi ~/.bashrc se ve así:

##########################################################
# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# https://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss

export CUSTOM_HISTFILE="~/.bash_history_workingdir" #path of the new history file
export PROMPT_COMMAND="history -a; history -c; history -r; date | xargs echo -n >>$CUSTOM_HISTFILE; echo -n ' - ' >>$CUSTOM_HISTFILE; pwd | xargs echo -n >>$CUSTOM_HISTFILE; echo -n ' - ' >>$CUSTOM_HISTFILE; tail -n 1 $HISTFILE >>$CUSTOM_HISTFILE; $PROMPT_COMMAND"

4voto

John N Puntos 400

Es el history -a parte de PROMPT_COMMAND en su .bashrc - que se añade al archivo del historial cada vez que se muestra un aviso, sea cual sea la pestaña que estés utilizando. Una solución rápida sería eliminar esto, para que la sesión de cada pestaña sólo escriba en .bash_history cuando la sesión termina (por ejemplo, cuando se cierra la pestaña).

I como este comportamiento (anexos inmediatos a .bash_history ), y sospecho que usted también. Una mejor solución puede ser mantener separar historias para cada sesión/pestaña - una de las respuestas a esta pregunta describe cómo lograrlo. Podrías conservar los apéndices inmediatos, pero en archivos separados - uno para cada sesión. Usted todavía sería capaz de buscar en todo su historial de bash con un comando como grep "foo" ~/.bash_hist* . (No he probado esto personalmente: Utilizo un archivo de historial para todas las sesiones, ya que mi flujo de trabajo normal tiende a ser en una pestaña o a través de screen y archivo mi /bash_history periódicamente en un archivo separado, como se describe en este artículo - que merece la pena leer, aunque no se refiera a su problema).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X