¿Puedo hacer que el comando claro se comporte como Ctrl-L en Bash?

¿Puedo hacer que el comando claro se comporte como Ctrl-L en Bash?

Parece que cleary bash Ctrlson Lbastante diferentes; clearelimina por completo toda la información anterior del terminal (por lo que no puede desplazarse hacia arriba) mientras que Ctrlsimplemente Ldesplaza la pantalla para que el cursor esté en la parte superior de la página para que aún pueda desplazarse hacia arriba y ver la información anterior. Prefiero el sistema Ctrl- L. ¿Hay alguna manera de anularlo clearpara que haga un Ctrl- Len lugar de borrar toda la información anterior del terminal? Este no es un gran problema, pero me pregunto por curiosidad si hay una manera de crear un alias clearpara señalar mi Ctrlfuncionalidad preferida L.

Como nota al margen, acabo de notar que PowerShell también tiene un enlace para Ctrl( Ly funciona de la misma manera que Ctrl) Len bash; Parece que los diseñadores de PowerShell tomaron mucho de bash, mientras que cmd.exelas consolas no tienen esta funcionalidad.

Respuesta1

¿Hay alguna manera de anular el borrado para que haga Ctrl-L en lugar de borrar toda la información anterior del terminal?

alias clear='tput -x clear'

Sí, Ctrl-Len bash (mientras está en set -o emacsmodo) hace exactamente lo mismo.

O simplemente puede cablear el escape con alias clear='printf "\033[H\033[2J"'el que debería funcionar en la mayoría de los emuladores de terminal, y no supone que lo tenga ncursesinstalado bash.

Nota: elclearEl subprograma de Busybox NO borra el búfer de desplazamiento hacia atrás, por lo que no tiene que hacer nada especial si está utilizando algún sistema basado en Busybox, como lo hacen la mayoría de los sistemas Linux integrados.

Respuesta2

cleares un comando de terminal, extracto de man clear:

DESCRIPCIÓN clear borra la pantalla si esto es posible, incluido su búfer de desplazamiento hacia atrás (si se define la capacidad extendida "E3"). clearbusca en el entorno el tipo de terminal proporcionado por la variable de entorno TERM, y luego en la base de datos terminfo para determinar cómo borrar la pantalla. clearescribe en la salida estándar. Puede redirigir la salida estándar a un archivo (lo que impide que clear borre realmente la pantalla) y luego cat el archivo a la pantalla, borrelo en ese punto.

Ctrl+ les una combinación de teclas parareadlineEl clear-screencomando ( man 3 readline).

Borre la pantalla, luego vuelva a dibujar la línea actual, dejando la línea actual en la parte superior de la pantalla. Con un argumento, actualiza la línea actual sin borrar la pantalla.


No puedo encontrar una manera de asignar un alias clearal clear-screencomando readline y puede que no sea posible en absoluto.

información relacionada