interpolação de string do tmux para o nome da sessão

0

Estou tentando fazer uma nova sessão com o mesmo nome que a atual com um -2 extra no final do nome.

bind C new-session -c "#{pane_current_path}" -s "#{session_name}"-2

O session_named não interpola o nome da variável que leva literalmente aos textos, criando uma sessão com o nome "#{session_name}"-2

Eu também estou executando o tmux 2.6

    
por Dylanthepiguy 01.03.2018 / 06:00

2 respostas

1

Isso funciona para mim no tmux 2.1 e 2.6. Você precisa destacar a nova sessão.

bind-key C run-shell 'tmux new-session -d -c "#{pane_current_path}" -s "#{session_name}-2"'

Se você quiser mudar para a nova sessão, você pode usar switch-client para passar para este cliente para a "próxima" sessão.

bind-key C run-shell \
 'tmux new-session -d -c "#{pane_current_path}" -s "#{session_name}-2"' \;\
  switch-client -n

Observe a barra invertida antes de ; e também as usadas aqui para dividir a encadernação em três linhas para legibilidade.

    
por 01.03.2018 / 12:04
0
Primeiro, quando tentei isso, recebi uma mensagem de aviso sobre o aninhamento de tmux sessions e tmux se recusou a executar a operação, a menos que eu primeiro não definisse a variável $TMUX , o que eu não estava disposto a fazer. Então, estou um pouco curioso porque a sua ligação funciona em tudo.

Sendo que você diz que funciona, apenas que cria uma sessão com o nome incorreto, talvez tente isto:

bind C new-session -c "#{pane_current_path}" -s "$(tmux display-message -p "#S")-2"

Esta tentativa em uma solução usa o idioma de substituição do comando do shell $(..) .

    
por 01.03.2018 / 07:42

Tags