Evitar a expansão da variável de diretório

1

tmux parece substituir o comportamento bash padrão. Suponha export someDir=/path/to/it , então no meu shell

  1. Clicar na guia cd $someDir adiciona automaticamente uma barra invertida, cd $someDir/ . Em tmux , não faz nada e imprime $someDir (literalmente).
  2. Pressionar a guia em cd $someDir/ lista o conteúdo. Em tmux , expande a variável. Apenas mais duas guias mostram o conteúdo.

Eu verifiquei novamente ambos estão executando 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 pode estar substituindo minhas configurações de conclusão. Acertar complete em um shell normal lista apenas 2 wrappers git. tmux mostra uma tonelada.

    
por kabanus 11.09.2018 / 09:10

1 resposta

2

Eu não estou usando o tmux, mas o que eu achei (com horror) é que ele está reativando a "conclusão programável" do bash que eu havia comentado há muito tempo em /etc/bash.bashrc - daí o comportamento confuso que você observou.

Isso porque o tmux está executando o bash como um shell de login (com argv[0] definido como -bash ), o que está causando a origem de /etc/profile e, em seguida, /etc/profile.d/bash_completion.sh .

Você também tem opções:

a) faça com que o comportamento de finalização seja o que você gosta nos shells de login e não-login, editando .bash_profile e .bashrc

b) convença o tmux a não executar um shell de login, por exemplo. por

set -g default-command "/bin/bash"

em .tmux.conf

    
por 11.09.2018 / 11:17

Tags