Con tmux en OSX, ¿cómo puedo hacer que comando + k se borre con más gracia?

20

Cuando uso el terminal en OSX, uso con frecuencia + Kpara borrar la pantalla y desplazar el búfer. Es profundo en la memoria muscular.

He comenzado a jugar con tmux, y una queja es que + Kborra toda la pantalla, los paneles y todo. Lo que me gustaría es que afecte solo al panel enfocado.

¿Puedo configurar de alguna manera este comportamiento?

Nathan Long
fuente

Respuestas:

21

Configure iTerm2 para enviar un comando claro

Preferencias -> Teclas -> + (agregar nuevo acceso directo global)

  • Atajo de teclado: ⌘ + k
  • Acción: enviar texto
  • valor:

claro \ n

Alternativamente, configure iTerm2 para asignar efectivamente effectively + k a ctrl + l

  • Atajo de teclado: ⌘ + k
  • Acción: Enviar código hexadecimal
  • valor:

0x0c

De esta manera, no verá el texto parpadear y el comando clear no contaminará su historial.

George Yacoub
fuente
2
Solución simple y elegante. Gracias mi amigo.
Rafael
Hermosa solución! Has hecho que mi experiencia tmux sea mucho más agradable. Gracias :)
Matt Darby
Solo una advertencia, esto mostrará el texto en la terminal
Jay
1
Esto es genial, pero se basa en el clearcomando y, por lo tanto, no funcionará dentro de la consola irb o rails.
Robert
17

Puedes usar prefix + r, después de + K, para volver a dibujar la ventana de tmux.

Si puede romper el hábito, un normal ctrl+ lfunciona normalmente por panel.

recatado
fuente
3
ctrl + l no es lo mismo que cmd + k porque aún puede desplazarse hacia arriba y ver el historial antiguo con ctrl + l. Si está siguiendo un registro, por ejemplo, que llena rápidamente su desplazamiento hacia atrás cmd + k es invaluable porque sabe exactamente cuándo lo dejó por última vez. Ctrl + l no hará esto por usted.
Bjorn
@BjornTipling ⌘ + K es una característica del emulador de terminal, y no funcionará dentro de tmux ... este enlace está diseñado para borrar el stdout estático, que no es cómo tmux, y otros programas como vim / emacs / weechat / mutt, se están mostrando
recatada el
1
+1 por romper el hábito, no puedo dejar de hacerlo hasta hoy. Lo mejor es escribir en su clearlugar, supongo
zanona
3

Puede agregar las siguientes líneas en su .tmux.conf:

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

Luego vuelva a cargar su configuración tmux. Ahora puede usar su tecla de enlace +k(por ejemplo: Ctrl+ b, k) para borrar el panel actual.

No conozco la sintaxis para OSX pero supongo que puedes adaptar fácilmente la línea.

xaa
fuente
Veo que C-lborra la pantalla y clear-historyborra el búfer de desplazamiento hacia atrás. ¿Qué hace la \;parte?
Nathan Long
corre tanto @NathanLong
Jay
3

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

Tengo esto de aquí

Atrezzo a él. Esto funciona para mí al igual que Cmd+kfunciona en el emulador de terminal, y funciona para mí en macOS 10.12.5 con iTerm2.

Enrico Borba
fuente
¡Funciona de maravilla, incluso cuando se tail -f ...está ejecutando un comando o un servidor!
Derek