ver temporales teclado sierra programas programa para ocultos mac high funciones eliminar desinstalar completamente como comandos clean arranque archivos macos shell buffer clear

macos - temporales - ¿Cómo borrar la salida anterior en Terminal en Mac OS X?



teclado mac funciones (11)

Para borrar el terminal manualmente:

+ K

Command + K para teclados más nuevos

Para borrar el terminal desde un script de shell;

/usr/bin/osascript -e ''tell application "System Events" to tell process "Terminal" to keystroke "k" using command down''

Conozco el comando clear que "limpia" la pantalla actual, pero lo hace simplemente imprimiendo muchas líneas nuevas: el contenido que se borra solo se desplaza hacia arriba.

¿Hay alguna forma de borrar completamente todas las salidas anteriores del terminal para que no pueda alcanzarlas incluso desplazándome hacia arriba?


Una mejor manera...

Si está utilizando la aplicación OSX Terminal (según lo indicado por el OP), un mejor enfoque (gracias a https://apple.stackexchange.com/a/113168 ) es simplemente esto:

clear && printf ''/e[3J''

que borra el búfer de retroceso. Y es más rápido que ejecutar AppleScript. También hay otras opciones, consulte https://apple.stackexchange.com/a/113168 para obtener más información.

respuesta original

La respuesta de AppleScript dada en este hilo funciona, PERO tiene el efecto secundario desagradable de borrar CUALQUIER ventana de terminal que esté activa. ¡Esto es sorprendente si está ejecutando el script en una ventana e intentando realizar el trabajo en otra!

Para evitar esto, refine el AppleScript para que solo se borre la pantalla si está en primer plano haciendo esto (tomado de https://apple.stackexchange.com/a/31887 ):

osascript -e ''if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down''

... pero como cuando no es la ventana actual, la salida se acumulará hasta que vuelva a ser actual, lo que probablemente no sea lo que quieres.


CMD + K parece funcionar todo el tiempo para mí.


Con Mac OS X Yosemite (10.10) use Option + Command + K para borrar el retroceso en Terminal.app.


En Mac OS X Terminal, esta funcionalidad ya está incorporada en la aplicación de terminal como View->Clear Scrollback (el valor predeterminado es CMD + K ).

Así que puedes reasignar esto como quieras con los atajos de teclado de Apple. Solo agregue un nuevo acceso directo para el Terminal con el comando "Borrar Scrollback". (Yo uso CMD + L , porque es similar a CTRL + L para borrar el contenido de la pantalla actual, sin borrar el búfer).

No estoy seguro de cómo usaría esto en un script (tal vez AppleScript, como han señalado otros).


Escribir lo siguiente en el terminal borrará tu historial (lo que significa que usar la flecha hacia arriba no te dará nada), pero no borrará la pantalla:

history -c


La forma bonita es printf ''/33c/e[3J''


No pude conseguir que nada de lo anterior funcionara (en macOS).

Una combinación funcionó para mí ...

IO.write "/e[H/e[2J/e[3J"

Esto borra el búfer y la pantalla.


O puede enviar un salto de página (feed de formularios ASCII) presionando:

CTRL+L

Si bien esto técnicamente comienza una nueva página, tiene el mismo efecto neto que todos los otros métodos, al mismo tiempo que es mucho más rápido (a excepción de la solución Apple + K, por supuesto).

Y debido a que este es un comando de control ASCII, funciona en todos los shells.


Ponga esto en su .bash_profile o .bashrc

function cls { osascript -e ''tell application "System Events" to keystroke "k" using command down'' }


clear && printf ''/e[3J''

borra todo, funciona bien en osX también. muy aseado