Com o tmux no OSX, como posso tornar o comando + k mais limpo?


20

Quando uso o terminal no OSX, frequentemente uso + Kpara limpar a tela e o buffer de rolagem. É profundo na memória muscular.

Comecei a mexer no tmux, e uma queixa é que + Klimpa toda a tela, painéis e tudo. O que eu gostaria é que isso afetasse apenas o painel focado.

De alguma forma, posso configurar esse comportamento?

Respostas:


21

Configure o iTerm2 para enviar um comando clear

Preferências -> Teclas -> + (adicionar novo atalho global)

  • Atalho do teclado: ⌘ + k
  • Ação: enviar texto
  • valor:

limpar \ n

Como alternativa, configure o iTerm2 para mapear efetivamente ⌘ + k para ctrl + l

  • Atalho do teclado: ⌘ + k
  • Ação: Enviar código hexadecimal
  • valor:

0x0c

Dessa forma, você não verá o texto piscando e o comando clear não poluirá seu histórico.


2
Solução simples e elegante. Obrigada meu amigo
Rafael

Bela solução! Você tornou minha experiência no tmux muito mais agradável. Obrigado :)
Matt Darby

Apenas um aviso, isso irá enviar o texto para o terminal #
2121 Jay Jay

1
Isso é ótimo, mas depende do clearcomando e, portanto, não funcionará enquanto estiver no console irb ou rails.
Robert

17

Você pode usar prefix+ r, após o + K, para redesenhar a janela do tmux.

Se você pode quebrar o hábito, um normal ctrl+ lfunciona normalmente por painel.


3
ctrl + l não é o mesmo que cmd + k, porque você ainda pode rolar para cima e ver o histórico antigo com ctrl + l. Se você está seguindo um log, por exemplo, que preenche rapidamente sua rolagem, cmd + k é inestimável, porque você sabe exatamente quando foi a última vez que parou. ctrl + l não fará isso por você.
Bjorn

O @BjornTipling ⌘ + K é um recurso do emulador de terminal e não funcionará dentro do tmux ... essa ligação foi projetada para limpar o stdout estático, que não é como o tmux, e outros programas como vim / emacs / weechat / mutt, estão sendo exibidos.
recatada 04/07

1
+1 por quebrar o hábito, não posso parar de fazê-lo até hoje. A melhor coisa é digitar clearpalpite vez I
zanona

3

Você pode adicionar as seguintes linhas no seu .tmux.conf:

# clear the current pane
bind -n C-k send-keys C-l \; clear-history

Em seguida, recarregue sua configuração do tmux. Agora você pode usar sua chave de ligação +k(por exemplo: Ctrl+ b, k) para limpar o painel atual.

Não conheço a sintaxe do OSX, mas acho que você pode facilmente adaptar a linha.


Vejo que C-llimpa a tela e clear-historylimpa o buffer de rolagem. O que a \;peça faz?
Nathan Long

ele é executado tanto @NathanLong
Jay

3

bind -n C-k send-keys -R \; send-keys C-l \; clear-history

Entendi daqui

Adereços para ele. Isso funciona para mim, assim como Cmd+kfunciona no emulador de terminal, e funciona para mim no macOS 10.12.5 com iTerm2.


Funciona como um encanto, mesmo quando um comando como tail -f ...um servidor está em execução!
Derek
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.