tmux
parece substituir meu comportamento bash padrão. Suponha export someDir=/path/to/it
, então, no meu shell
- Bater tab em
cd $someDir
adiciona automaticamente uma barra frontal,cd $someDir/
. Neletmux
não faz nada, e imprime$someDir
(literalmente). - Bater na guia
cd $someDir/
lista o conteúdo. Neletmux
expande a variável. Apenas mais duas guias mostram o conteúdo.
Verifiquei duas vezes que ambos estão executando o Bash e, se pertinente, esta é a minha configuração:
set -g status-style bg=black
set -g status-style fg=red
set-window-option -g xterm-keys on
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Como posso reproduzir o comportamento original?
Mais informações
O comentário de @Kusalananda me fez pensar que tmux
poderia estar substituindo minhas configurações de conclusão. Bater complete
em um shell normal lista apenas 2 wrappers git. tmux
mostra uma tonelada.
Não estou usando o tmux, mas o que descobri (com horror) é que ele está reativando a "conclusão programável" do bash que eu havia comentado há muito tempo
/etc/bash.bashrc
- daí o comportamento intrigante que você observou.Isso ocorre porque o tmux está executando o bash como um shell de login (com
argv[0]
definido como-bash
), o que está causando a origem/etc/profile
e, em seguida, o/etc/profile.d/bash_completion.sh
.Você também tem opções:
a) torne o comportamento de conclusão o que você gosta nos shells de login e não-login editando
.bash_profile
e.bashrc
b) convencer o tmux a não executar um shell de login, por exemplo. por
dentro
.tmux.conf