Recientemente decidí cambiar mi variable PS1 para acomodar algunos bonitos colores solarizados para mi placer de visualización terminal. Cuando no está en una sesión tmux, ¡todo es genial! ¡Arcoíris, ponis, unicornios y un aviso distinguible! ¡Frio!
Sin embargo, el problema está dentro de tmux. Verifiqué que el valor de PS1 es el que espero que sea y el mismo que cuando tmux no se está ejecutando, a saber \[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]
.
Todos mis alias, etc. en mi .bash_profile también funcionan como se esperaba. tmux también muestra colores sin incidentes, ya que se echo -ne "\033[1;33m hi"
comporta como se esperaba gls --color
.
La línea relevante actual en mi .bash_profile es export PS1="\[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]"
, aunque originalmente estaba buscando un script ubicado en un archivo .bash_prompt para manejar algunos condicionales, etc. Intenté volver a la versión más simple.
La ejecución bash
hará que la solicitud se coloree, pero debe hacerse en cada panel. export PS1=[that long string I've already posted]
No lo haré.
Mi .tmux.conf es el siguiente:
set-option -g default-command "reattach-to-user-namespace -l /usr/local/bin/bash"
set -g default-terminal "xterm-256color"
set-window-option -g automatic-rename on
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
Porciones relevantes de .bash_profile:
export TERM="xterm-256color"
if which tmux >/dev/null 2>&1; then
test -z "$TMUX" && (tmux attach || tmux new-session)
fi
Estoy usando macOS Sierra, iTerm 2, he probado tanto la versión homebrew actual de bash como la bash del sistema (actualmente está usando homebrew), tmux 2.4.
También coloqué touch testing_touch_from_bash_profile
en mi .bash_profile mientras estaba en una sesión tmux con dos paneles, eliminé un panel, abrí un panel y verifiqué que el archivo se había creado.
echo $TERM
vuelve xterm-256color
.
Me he asegurado de que al salir de tmux para probar los cambios de configuración, salga de tmux y que actualmente no se esté ejecutando ningún proceso de tmux en el sistema ps -ax | grep tmux
.
Curiosamente, la fuente del script .bash_prompt también cambia el color siempre que lo haga dentro de cada panel tmux.
Miré /programming/21005966/tmux-prompt-not-following-normal-bash-prompt-ps1-w e intenté agregar la bandera --login después de la llamada bash en la primera línea de mi .tmux.conf. Al iniciar tmux con tmux new bash
, el primer panel se coloreará, pero los paneles posteriores no.
La variable $ PS1 está siendo honrada por aparentemente todos los aspectos, excepto colorear cualquier campo.
¿Alguien tiene alguna idea?
PS1
configuración que publicó no tiene ningún comando para cambiar los colores. Publique una configuración real que funcione fuera de tmux. Además, debe configurarPS1
en.bashrc
, no en.bash_profile
:.bash_profile
no puede ser que consiga ejecutada en absoluto, y la configuración puede ser reemplazado más tarde.Respuestas:
Su PS1 también me da salida en blanco y negro.
Sin embargo, volver a la mía me da color, por lo que deberías poder descubrir las diferentes, yo uso
git_branch es una función bash que tengo que es:
El tuyo contra el mío:
Esto funciona igual en OSX y Ubuntu
fuente
Mi solución a este problema fue establecer
force_color_prompt=yes
en mi
.bashrc
. Ahora mi indicador tmux tiene color.fuente
tmux
y luego ejecutar una sesión tmuxsource ~/.bashrc
. Necesitas hacer eso en cada panel.En mi máquina, la solución es agregar
a
~/.tmux.conf
.fuente