O Tmux select-layout retorna com “Não é possível definir o layout”

3

Eu estou no Mac OS X Lion, e eu instalei o tmux através do brew.

Eu configurei uma janela simples, com uma divisão vertical, e uma divisão horizontal no painel direito para um total de três janelas. Eu também fiz o painel mais à esquerda com resize-pane -R 30 . Eu quero colocar o layout em um script para que eu possa refazê-lo rapidamente, então eu exportei as configurações de layout com tmux list-windows e obtive o seguinte:

bash [318x64] [layout 5ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}]

No entanto, quando pego a linha de layout e corro

tmux select-layout "5ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}"

Eu obtenho

can't set layout: 5ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}

A documentação menciona que você não pode fazer isso em um layout com mais painéis do que o layout original especificado, mas isso não parece ser o problema.

    
por Cthos 18.10.2012 / 17:24

1 resposta

4

Parece que pode haver um pequeno erro no código tmux que analisa as cadeias de layout. Tente preceder um espaço ou um zero para que haja quatro caracteres antes da primeira vírgula.

tmux select-layout ' 5ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}'
tmux select-layout '05ff,318x64,0,0{189x64,0,0,128x64,190,0[128x32,190,0,128x31,190,33]}'

É fácil ignorar, mas esse preenchimento extra está realmente presente na saída list-windows . Aqui está um exemplo com um espaço extra:

0: zsh* (3 panes) [193x46] [layout  71e,193x46,0,0{144x46,0,0,47,48x46,145,0[48x23,145,0,49,48x22,145,24,51]}] @44 (active)

E outro com dois espaços extras:

0: zsh* (3 panes) [193x46] [layout   49,193x46,0,0{81x46,0,0,47,111x46,82,0[111x23,82,0,49,111x22,82,24,51]}] @44 (active)

Os exemplos acima são de tmux 1.7, então eles incluem um número extra para cada painel, em comparação com seus exemplos.

Em geral, você precisa citar estas strings de layout para evitar que o shell interprete

  • as vírgulas dentro de chaves como expansões de chaves (por exemplo, frob{ozz,nitz} ) e
  • os colchetes como "expansão do nome do caminho" (ou seja, como *.[ch] glob / curinga).

A cotação também facilita a inclusão de um espaço como o preenchimento obrigatório.

É improvável que o globbing involuntário seja um problema, pois você provavelmente não possui arquivos que correspondam a essas cadeias de caracteres com vírgulas e dígitos e a maioria das shells está configurada (por padrão) para tratar globs não correspondentes como strings literais para o comando em uma forma não modificada). A expansão da chave, no entanto, é sempre um problema (em shells que a suportam) porque o shell expandirá a string de layout em vários argumentos. select-layout está mostrando sua mensagem de uso porque recebeu muitos argumentos (depois que o shell executou a expansão de contraventamento na string de layout).

    
por 19.10.2012 / 06:54

Tags