
Soy un usuario entusiasta delconcha de pescadoy me gusta mucho.
Sin embargo, una pregunta:
en la paginahttps://fishshell.com/docs/2.1/index.htmlhay un párrafo titulado"Editor de línea de comando". Enumera muchos atajos útiles.
Lo que es más interesante para mí esCtrl-L. Según la descripción: "Ctrl-L borra y vuelve a pintar la pantalla". Lo probé y funciona como deseaba. Sin embargo, produce algunos signos que se agregan al mensaje anterior. Eso se puede ver al desplazarse hacia atrás.
Ejemplo:
rosika@... ~/Schreibtisch> [3;J
rosika@... ~/Schreibtisch>
Entonces esto [3;J
es lo que estoy preguntando. De hecho, es [
una especie de rectángulo con (supongo) 4 dígitos.
¿Alguien puede decirme por qué ocurre ese fenómeno? ¿De qué se trata y se supone que debe ser así?
Muchas gracias por adelantado.
Saludos
Rosika
Mi sistema:
Linux/Lubuntu 16.04.4 LTS, 64 bits
pescado v.2.2.0-3
Respuesta1
Los terminales Unix se llenan de contenido interpretando secuencias de control y texto entremezclados en una sola secuencia. Muchos caracteres pueden ser tanto texto como un código de control y depende del contexto lo que significan.
<esc> [3;J
es una de esas secuencias. en el contexto incorrecto se imprime, en el contexto correcto es parte del reinicio de la pantalla.
consulte las páginas de manual termcap
, console_codes
y tput
para obtener más detalles.
Respuesta2
Su emulador de terminal no coincide con el valor de su TERM
variable de entorno. El error más común es pensar que algo que no es XTerm coincidirá con los registros termcap/terminfo denominados xterm
o xterm-new
o xterm-256color
.
E3
Su registro terminfo especifica la capacidad relativamente nueva (actualmente especificada para linux
, putty
, putty-256color
, xterm-basic
, xterm-new
, xterm
, xterm-256color
y algunos otros tipos de terminales) que le dice a los programas que hay un buffer de desplazamiento hacia atrás para borrar y cómo borrarlo. Pero su emulador de terminal en realidad no admite esa secuencia de control y, en su lugar, imprime lo que ve en respuesta a ella. Fish Shell está ejecutando el clear
comando, que ahora utiliza este aumento de terminfo.
El nombre dado en el valor de su TERM
variable de entorno debe coincidir con el nombre de un registro termcap/terminfo que describa correctamente la operación de su emulador de terminal.
Otras lecturas
- https://unix.stackexchange.com/a/375784/5132
- https://unix.stackexchange.com/a/341619/5132
- https://unix.stackexchange.com/a/419092/5132
- https://unix.stackexchange.com/a/318297/5132
- c02y (24/03/2016).¿Cómo vincular "Ctrl-l" para vaciar la pantalla en lugar de borrar el búfer del terminal?. error de concha de pescado # 2855. GitHub.