Tente renomear a janela 4
- Muda para a janela 4: Controle + b 4
- Renomear janela: Controle + b , Controle + u myNewname
(Isso é uma vírgula no meio)
Ou: Controle + b :rename-window myNewname
Eu acidentalmente estralho meu terminal tmux após cat
ing um arquivo binário. Agora meu tmux
está confuso. Desanexar e voltar a ligar não ajuda, nem faz um redesenho (C-b r). A execução de reset
apenas redesenha o painel ativo, não o restante. A execução de ssty sane
dentro ou fora de tmux
também não ajuda.
Dentrodecadapainel,tenhoumfeedbacknormaldoqueeudigito(achamadainicialdereset
imediatamentedepoisqueoterminalficoudesordenadoresolveuisso),masnãoconsigoconsertarabarradestatus.
Emgnome-terminal
,cadaatualizaçãonabarradestatuslevaàbarradestatusparacrescer(vejaacapturadetelaacima).Porexemplo,issoacontecequandoeuexecutoumnovoaplicativo,quandoalternoospainéisouquandoredimensionoumpainel.Forçandoumredesenho(PorC-br
,executandoreset
ouatravésdomenugnome-terminal)encolheabarradestatusparaumaúnicalinha,maselacontinuacorrompida.
Emxterm
,abarradestatuspermanecedentrodeumalinha,maspermanececorrompidacomonafoto.
Estouusandootmux1.5.
tmux
-terminal?Você precisa de duas sequências de comando para limpar a bagunça:
Primeiro, execute isso na janela ilegível (isso funciona mesmo quando você está em ssh
):
stty sane; printf '3k%s3\3]2;%s
tmux
7' "'basename "$SHELL"'" "'uname -n'"; tput reset; tmux refresh
Em seguida, execute isso no computador que executa tmux
(funciona dentro e fora de tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done
):
The following command affects all
tmux
instances, which may change the left status of more than the current window. If you do not need that feature, leave it away.
tmux
Isso foi montado para abordar todos os bits encontrados em outras respostas e comentários. Atualmente parece apenas um pouco menor com o segundo comando. (Veja no "bit em falta" abaixo).
Para entender como isso funciona, vamos primeiro eliminar a linha de status de tty
e reset
. Depois, corrigimos novamente, usando um método que deve estar sempre disponível (ao contrário do comando tmux
).
UTF-8
(assume stty -echo
) inutilizável stty -echo; printf '63k%2000s\33]2;5stty sane; printf '3k%s3\3]2;%sset-window-option automatic-rename on
7' "$(basename "$SHELL")" "$(uname -n)"; tput reset; tmux refresh
7' $'27'
Warning: After running above command, the shell looks blind and deaf and seems only to talk bullshit in some unknown alien language. See below on how to repair this.
Explicado:
printf '6'
mata a resposta do tipo de terminal
SO
faz um printf '3]2;%s
, então você está no conjunto de caracteres alternativo $'5
7' 'right status text'
printf '3k%2000s3\' $'27'
define o status correto, neste caso /bin/cat
', que expõe um bug de apresentação
stty -echo
define o nome do título da janela
Esta pode ser a combinação que você pode ver no terminal depois que algum comando interativo caiu e caiu de volta no shell. (Com vim
você não pode provocar stty sane
IMHO, mas comandos interativos como printf '3k%s3\' "$(basename "$SHELL")"
geralmente configuram isso.)
for a in 'tmux list-windows | sed 's/:.*//'; do tmux set-window-option -t "$a" automatic-rename on; done'
Note: If you use copy and paste (you probably need to hold down
Shift
while pasting), you probably cannot see your paste if you have used the above command to mess up with yourtty
. Hence, just blindly press the Enter key after pasting this.
Explicado:
tmux rename-window "$(basename "$SHELL")"
define os parâmetros do terminal "sane", para que você recupere o eco durante a digitação
tmux rename-window
define o título da janela de volta ao normal. Você pode usar tmux
alternativamente, mas printf '3]2;%s
está limitado a tmux set status-right "something"
7' "$(uname -n)"pane title
, onde a sequência de escape sempre funciona.
status-right
redefine o status-direito para ser mostrado como padrão. (Observe que você não deve usar tmux
, porque ele exibe apenas o tput reset
que ficou corrompido, então tmux refresh
apenas expõe algum bug de apresentação. Observe também que eu não encontrei um comando printf '3k%s3\' "$(basename "$SHELL")"
para definir o painel título diretamente.)
tmux
redefine o terminal, apenas no caso de ter sido mexido com
printf '3k%s3\' "something"
atualiza a tela para se livrar de outros fragmentos que possam ter aparecido
O tmux
perde a capacidade padrão de tmux
para apresentar o comando atual na área de status à esquerda. Depois que tmux
foi executado, essa habilidade é perdida e eu não encontrei um bom caminho, ainda, como trazê-lo de volta como era antes.
Mas, conforme observado nos comentários abaixo, você pode ativar um recurso semelhante de :
como substituto da seguinte configuração de tmux
:
tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done
Faça isso na linha de comando tmux set-window-option automatic-rename on
, que pode ser acessada na janela atual com "Escape" sudo
(onde "Escape" é sua chave de comando ssh
) e insira o comando .
Ou excute tmux
em seu terminal atual, mas isso falhará no caso de você não estar diretamente no nível de shell correto, por exemplo, não funciona dentro de tmux
ou %code% .
Ou abra outra janela na sessão %code% atual e execute o seguinte comando:
stty -echo; printf '63k%2000s\33]2;5stty sane; printf '3k%s3\3]2;%sset-window-option automatic-rename on
7' "$(basename "$SHELL")" "$(uname -n)"; tput reset; tmux refresh
7' $'27'
Ou abra outro shell no computador que está executando %code% e execute o seguinte comando (isto é fora do tmux):
for a in 'tmux list-windows | sed 's/:.*//'; do tmux set-window-option -t "$a" automatic-rename on; done'
PS: Obrigado a todos que ajudaram a montar essa solução.
O problema específico que você está vendo tem a ver com o nome / título da janela 4. Uma combinação de ser muito longo (obviamente) e contendo caracteres estranhos que fazem o tmux mensurá-lo como sendo mais curto (então ele não consegue limitar adequadamente a barra de status para a largura da tela) Eu não sei como redefini-la (no meu, ele rastreia o nome do processo de primeiro plano), você pode ter que fechar a janela.
simplesmente faça isso
$ reset && tmux rename-window <new_window_name>
tmux set-option -g status off && tmux set-option -g status on
consertou isso para mim quando algo diferente do nome da janela foi corrompido e não pude ser incomodado para descobrir o que era.
tmux
só pode constituir parte do problema. Você pode ter que invocar stty sane
na linha de comando. Isso redefine os drivers TTY no kernel para algum conjunto de valores padrão que geralmente permitem que você continue. Se os drivers TTY estiverem bagunçados o suficiente, você pode ter que digitar stty sane
"blind", ou seja, sem feedback na tela.
Tente recarregar seu arquivo de configuração?
Ctrl b , em seguida::source-file ~/.tmux.conf
para corrigir o problema para mim:
Acabei de matar o painel e a janela do problema e criei uma nova janela e um painel.
Na área de edição, CTRL + A X e CTRL + A C .
Tags tmux