Isso é um pouco confuso, mas funciona:
-
Adicione esta definição de função ao seu
~/.profile
:tmux() ( ORIG_PWD_FOR_TMUX="${PWD}" command tmux "$@"; )
Esta função executa
tmux
com a variável de ambienteORIG_PWD_FOR_TMUX
definida para o diretório atual (${PWD}
). Esta variável será referenciada sempre que uma nova janela for criada. -
Adicione o seguinte ao seu arquivo
~/.tmux.conf
:set-option -g default-command "[ -z \"\${ORIG_PWD_FOR_TMUX+set}\" ] || { cd \"\${ORIG_PWD_FOR_TMUX}\"; unset ORIG_PWD_FOR_TMUX; }; exec ${SHELL}" set-option -g -a update-environment " ORIG_PWD_FOR_TMUX"
O valor
default-command
acima verifica se a variável de ambienteORIG_PWD_FOR_TMUX
está definida. Nesse caso, ele muda para esse diretório e desabilita a variável (para manter o ambiente limpo). Em seguida, ele invoca o shell, que será executado no diretório original.A configuração
update-environment
informa aotmux
para copiar o valor deORIG_PWD_FOR_TMUX
no ambiente da sessão, para que os futuros comandosnew-window
tenham o valor da variável disponível.
Agora você pode simplesmente executar tmux
como de costume, exceto que novas janelas serão iniciadas no mesmo diretório da sessão.