%20no%20salta%20a%20la%20siguiente%20l%C3%ADnea%20en%20la%20terminal.png)
Me he topado con un problema. En mi caso fue un programa Lua que imprimía una serie de números. Lua usa pestañas como separadores, y el resultado fue así en mi terminal de 80 columnas:
1 2 3 4 5 6 7 8 9 10 1
1 12
Observe cómo se trunca el número 11, con el primer 1 en la columna 79 y el segundo 1 en la columna 0 de la siguiente línea. Esperaba que apareciera el número 11 completo en la siguiente línea.
No es específico de Lua y es fácilmente reproducible con esta frase:
printf '1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12'
He leído esta pregunta y la respuesta aceptada:¿Por qué hay 11 tabulaciones en una consola de 80 columnas?lo que me hizo entenderpor quéeso está pasando. La pregunta es, ¿hay alguna manera de anular ese comportamiento para hacer que la última pestaña salte a la columna 0 en la línea siguiente, en lugar de a la última columna de la línea actual?
Respuesta1
No, no puede hacer que esto funcione automáticamente, es decir, sin filtrar la salida de su programa para interpretar la pestaña en el margen derecho como ajuste. Esto se debe a que el envoltorio estilo VT100 llega hasta el margen derecho ynoenvolver a menos que escribas unimprimiblepersonaje. Las pestañas no se pueden imprimir.
La mayoría de los terminales están configurados para usar pestañas programables (ya expandidas a espacios). Puedes comprobar tu stty
configuración para ver si esto es así. El resultado es oscuro, pero tab0
significa que intenta usar pestañas, mientras que tab3
dice que no.
Para ver la configuración:
stty -a
Para desactivar las pestañas físicas:
stty -tabs
luapuedeanule esa configuración, pero si no es así, es una posibilidad ya que spacees un carácter imprimible.
Otras lecturas:
- Esa descripción del envoltorio es extraña, ¿dices más?(Preguntas frecuentes sobre xterm)
- Ejemplos de envoltura(vttest)