Como alterar o diretório padrão da nova janela de dentro do tmux

42

Recentemente, mudei da tela do GNU para o tmux .
Acho bem parecido, mas com maior suporte (troquei devido a um problema com o tempo de escape no neovim - a resolução era apenas para o tmux).

Infelizmente, no tmux, não consigo encontrar um comando semelhante a este:

screen -X eval "chdir $(some_dir)"

O comando acima alterou o diretório padrão para a nova janela / tela / painel de dentro da tela do GNU, então quando eu pressionei Ctrl+ a(semelhante ao tmux Ctrl+ b) - nova janela é aberta no $(some_dir)diretório.

Existe algo semelhante no tmux?

RESPOSTA:
Eu usei a resposta @Lqueryvg e a combinei com a sugestão @Vincent Nivoliers de um comentário e isso me deu uma nova ligação para um comando attach -c "#{pane_current_path}"que define meu diretório atual como padrão.
Obrigado.

lewiatan
fonte
Você poderia usar a segunda resposta desta pergunta
Vincent Nivoliers 8/16
Obrigado, é útil. new-window -c "#{pane_current_path}"está funcionando, mas o que eu preciso é definir o caminho permanentemente, ou seja: estou trabalhando em um projeto em / aaa / bbb, mas de alguma forma eu quando mudo o caminho para dizer / ccc / ddd e inicio o novo com Cb e c aterre mais uma vez em / aaa / bbb. Você consegue pensar em uma solução para isso?
precisa saber é
Pessoalmente, estou bem com a adição das três últimas linhas na minha .tmux.conf. Dessa forma, só tenho que navegar uma vez para a pasta e criar minhas janelas / partições a partir daí, mas admito que essa não é uma solução para o seu problema, por isso não postei uma resposta!
Vincent Nivoliers 8/03/16

Respostas:

61
  1. Comece da tmuxseguinte maneira:

    (cd /aaa/bbb; tmux)
    

    Agora, todas as novas janelas (ou painéis) que você criar serão iniciadas no diretório /aaa/bbb, independentemente do diretório atual do painel atual.

  2. Se você quiser alterar o diretório padrão quando tmuxestiver em funcionamento, use attach-sessioncom -c.

    Citando na tmuxpágina de manual para attach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    Por exemplo:

    • Ctrl+b :

    • attach -c /ddd/eee

    Novas janelas (ou painéis) agora serão iniciadas no diretório /ddd/eee, independentemente do diretório do painel atual.

Lqueryvg
fonte
7
Segunda opção é exatamente o que eu queria. Vou usar o attach -c "#{pane_current_path}"que seria o mesmo que tive na tela. Obrigado.
Lewiatan
Sim! attach -cé exatamente o que eu estava procurando. Obrigado
Byron Mansfield
3

Para aqueles que procuram um pouco mais de referência do que a resposta selecionada fornece, havia outra boa resposta para essa pergunta no StackOverflow:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

O que fornece maneiras de você fazer isso sem sair da sessão e, para aqueles que usam o tmux de várias sessões (como eu), a resposta acima fornece um contexto um pouco melhor de como attach/ attach-sessionfunciona.

Veja as duas respostas disponíveis para conhecer as diferentes maneiras em que podem ser usadas. Eu achei que ambos eram úteis / perspicazes.

nicklamuro
fonte