Questão Como se troca dois painéis no Tmux?


Eu tenho dois painéis em split horizontal. Eu gostaria de ter o painel atualmente à direita para ficar à esquerda na janela. Eu não estou falando sobre mover o foco (Ctrl+B  o). Como faço para conseguir isso?

'painel esquerdo' <-> 'painel direito'


144


origem




Respostas:


o swap-pane comando pode fazer isso por você. o { e } chaves são obrigadas a swap-pane -U e swap-pane -D na configuração padrão.

Então, para efetuar a mudança desejada, você provavelmente pode usar Prefixo  { quando você está no painel direito (ou Prefixo  } se você estiver no painel esquerdo).

o -U e -D consulte “up” e “down” na ordem do índice do painel (“up” é a mesma direção que Prefixo  o move-se entre painéis). Você pode ver os índices do painel com display-panes (Prefixo  q, por padrão).


207



+1 para especificar Prefix em vez de assumir que todos usarão Ctrl-b - Aaron Wallentine
Acordado. É ainda pior quando as pessoas acham que você está usando Ctrl-a, pois são as pessoas que sabem que o prefixo pode ser alterado para se adequar ao usuário. - Brandon Ibbotson


Você pode bater Ctrl  b e continue segurando Ctrl enquanto batendo o. Isso irá girar todos os painéis existentes, então, no seu caso, ele irá trocar os dois únicos painéis existentes.

Ctrl  b + Alt  o gira no sentido oposto (útil quando você tem mais de dois painéis).


37



Eu não consigo fazer isso - quando eu faço Ctrl + b e depois o, eu recebo uma rotação do painel da janela, mas o foco volta para o painel atual. Eu não posso percorrer os painéis sem bater repetidamente toda a sequência de Ctrl + b, ctrl + o. É meio tedioso. Você sabe por que isso pode estar acontecendo? - Stabledog
@Stabledog Não tenho certeza ... Só para ficar claro sobre o comportamento esperado: Mantendo pressionado Ctrl, batendo bo repetidamente fará com que os painéis sejam acionados. O cursor deve permanecer no mesmo local, ou seja, não seguir os painéis ao redor, mas ser colocado no novo painel que é girado para a posição onde o cursor está. - Joel Ostblom
Sim, estamos na mesma página. Mas depois do primeiro 'o', que causa uma rotação de painel, o próximo 'o' é enviado para o shell subjacente e processado por qualquer aplicativo que esteja lá. Estou pensando em algo suspeito com meu mapa, ou talvez algo que dependa da versão do tmux. Obrigado por responder. - Stabledog
@Stabledog Atualmente estou no tmux 2.3, mas acho que isso sempre funcionou para mim ... Eu não consigo pensar no que poderia ser o problema. Soa estranho que o Ctrl+oestá sendo enviado para o shell em vez de para o tmux, especialmente se este não for o caso para pressionar repetidamente Ctrl+b (ou outros comandos tmux?). - Joel Ostblom
@ Stabledog Na verdade, acabei de notar que o único outro comando em que posso manter o controle e repetir as outras chaves é Ctrl+b;, que continua girando o cursor entre dois painéis. - Joel Ostblom


O controle mais preciso que você pode ter é usando o comando swap-pane  diretamente. Isso não é tão difícil de fazer:

  1. ctrl-b q mostra o "ID" para cada painel na janela atual - lembre-se dos dois painéis que você deseja trocar. Vamos dizer que eles são 3 e 5.
  2. ctrl-b : para ativar a linha de comando do tmux. Então, emita o comando swap-pane -s 3 -t 5.

Observe que você tem preenchimento automático ao digitar comandos. Além disso, você pode procurar a sintaxe de um comando diretamente de página de manual do tmux. É assim que eu aprendo a sintaxe para swap-pane.


5