Al usar Terminal.app, puede borrar la pantalla usando el shell incorporado clearo presionando ^+ L(Control-L).
Sin embargo, todo esto hace que el contenido actual de la pantalla retroceda una altura de pantalla y restablezca el cursor / entrada en la primera línea. Lo que significa que aún puede desplazarse hacia atrás y verlo.
Lo que también puede hacer es restablecer todo el desplazamiento hacia atrás presionando ⌘+ K(Comando-K).
Después de haber hecho esto, no puede desplazarse hacia atrás en absoluto.
En ciertas situaciones (en particular, antes de ejecutar screeno vim), me gustaría restablecer el desplazamiento hacia atrás antes de que el comando realmente se ejecute.
¿Hay un comando (como clear) que se implementa en OS X que me permite hacer esto? Dada la existencia de pbcopyy pbpaste, estoy pensando que podría existir algo similar que me permita hacer esto.
fuente

clear && printf '\e[3J'(¡Ha seleccionado la respuesta incorrecta como respuesta correcta!)Respuestas:
El terminal admite una extensión de la secuencia de escape ED (Borrar en pantalla) para borrar el desplazamiento hacia atrás. También es compatible con xterm. El comando ED, descrito en el manual VT100 , acepta estos valores para el parámetro Ps:
Terminal ( y xterm ) agrega:
Tenga en cuenta que esto solo borra el desplazamiento hacia atrás, no la pantalla. Esto le permite borrar uno u otro, o ambos enviando dos secuencias de escape.
Por ejemplo, puede borrar la pantalla y el desplazamiento hacia atrás con el siguiente comando de shell:
clear && printf '\e[3J'(El
clearcomando busca la secuencia apropiada para borrar la pantalla del terminal actual, pero la secuencia de escape "borrar desplazamiento hacia atrás" es personalizada y debe estar codificada. Si coloca esto en un script de shell que no conoce con certeza solamente nunca se ejecutará con la terminal, debe comprobar que$TERM_PROGRAMesApple_Terminalantes de enviarlo.)fuente
alias clear="clear && printf '\e[3J'"echo $'#!/usr/bin/env bash\n/usr/bin/clear\nprintf \'\\e[3J\'' >clr; chmod +x clr⌘K, acceso directo a "Ver> Borrar desplazamiento hacia atrás".
ACTUALIZACIÓN : Esto se puede automatizar con AppleScript mediante el siguiente comando:
... que, por supuesto, puede
aliashacer lo que quiera, o almacenar en una función en su~/.profilescript de inicio de sesión :)Sin embargo, como seguridad, para poder usar esto incluso en segundo plano sin correr el riesgo de emitir una pulsación de tecla en una aplicación frontal incorrecta, aconsejaría que lo rodee con la siguiente prueba:
... que nos da el siguiente código:
... que a su vez, correctamente escapado y
aliased, termina en:¡Y aquí está tu nuevo
clear! :)fuente
vim), el shell ejecute el "reinicio de desplazamiento" antes de ejecutar vim. Programático, no interactivo.clear; es decir, borra la pantalla, pero aún puedo desplazarme hacia atrás. GolpearCommandKfunciona normalmente.Aquí hay un código que funciona tanto para la Terminal de macOS como para iTerm2. Tampoco necesita que la ventana esté en primer plano.
Cómo funciona
Esta es una composición de 3 secuencias de escape ANSI , particularmente los comandos "Introductor de secuencia de control" .
\033es una secuencia de escape que codifica el punto de código para el personaje que representa. El inicio0indica que el resto de la secuencia codifica un valor octal, en este caso,33en octal. El valor decimal de eso es27(3 * 8^1 + 3 * 8^0=3 * 8 + 3=24 + 3=27). En ASCII, el punto de código27es el carácter "ESC" (escape).CSIlos comandos comienzan conESC [aka\033[. Sabiendo esto, podemos dividir la cuerda en sus 3 partes.CSI 2 JCSI n Jnvalor se establece2en este caso, que invoca la segunda variante: "Si n es 2, borra toda la pantalla (y mueve el cursor a la esquina superior izquierda en DOS ANSI.SYS)".CSI 3 J:CSI n Jnvalor se establece3en este caso, que invoca la tercera variante: "Si n es 3, borre toda la pantalla y elimine todas las líneas guardadas en el búfer de desplazamiento (esta característica se agregó para xterm y es compatible con otras aplicaciones de terminal)".CSI 1 ; 1 H:CSI n ; m Hnymse establecen en1, lo que significa que este comando mueve el cursor a la esquina superior izquierda.fuente
CSI n J" (donde n = 2) + "CSI n J" (donde n = 3) + "CSI n ; m H" (donde n, m = 1, 1), que se traduce como: "ED - Borrar en pantalla" (variante 2), "ED - Borrar en pantalla" (variante 3), "CUP - Posición del cursor" (moviéndose a 1, 1)