Como definir o caminho / diretório padrão para o diretório onde a sessão foi iniciada?

3

Estou usando uma versão antiga do tmux (v1.5). Como posso configurar o tmux para definir o diretório padrão para o diretório onde a sessão foi iniciada?

Isso não é um problema com versões mais recentes do tmux (1.7 e posterior). Eu posso simplesmente adicionar o seguinte a ~/.tmux.conf para conseguir o que eu quero:

set-option -g default-path "-"

Infelizmente esta opção não está disponível na versão do tmux que estou usando.

    
por Richard Hansen 30.09.2013 / 02:25

1 resposta

5

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 ambiente ORIG_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 ambiente ORIG_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 ao tmux para copiar o valor de ORIG_PWD_FOR_TMUX no ambiente da sessão, para que os futuros comandos new-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.

    
por 30.09.2013 / 02:25

Tags