GNU/Linux >> Tutoriales Linux >  >> Linux

¿Movimiento del cursor en las terminales?

Estoy tratando de entender cómo las conchas mueven el cursor de la pantalla (Moviéndose, ingrese las teclas de flecha y demás).

He estado haciendo muchas pruebas y no he encontrado ninguna llamada al sistema que permita el movimiento del cursor de la pantalla en una terminal. ¿Esto se hace usando extensiones de terminal específicas? Si es así, ¿hay alguna documentación sobre cómo se logra esto para, por ejemplo, xterm?

Esto me ha estado volviendo loco, cualquier luz que pueda arrojar sobre esto es apreciada.

Respuesta aceptada:

No existe tal llamada al sistema, o conjunto de llamadas al sistema. Todo se hace por convención.

En los viejos tiempos, cuando una "terminal" era un equipo grande y torpe conectado a una computadora a través de un cable, las "terminales inteligentes" hacían cosas como mover el cursor, dibujar una línea o rellenar un polígono con colores. . El terminal inteligente normalmente hacía esto a través de "secuencias de escape". Un programa emitía una secuencia especial de valores de bytes, generalmente comenzando con ASCII 0x1b, 'ESC', para mover un cursor, colorear una palabra o alguna cosa especial que no fuera imitar un teletipo.

Esa es la "convención". Hoy en día, una "terminal" es casi siempre solo una ventana entre muchas en una pantalla de mapa de bits, xterm, rxvt, etc. e interpretar esos bytes de acuerdo con una convención determinada. Acabo de escribir esto en una de mis ventanas xterm:

6 % echo $TERM 
xterm

Pero sé que los xterms antiguos solían decir "vt100" en ese caso. Cualquier programa que "mueva el cursor" debe generar secuencias de escape para que la convención "xterm" mueva el cursor en una instancia de xterm.

Podrías hacer man curses y man terminfo para más información.

PD

La gente ha hecho sistemas completos de ventanas con secuencias de escape. Ver MGR como ejemplo.


Linux
  1. Por qué me quedo con xterm

  2. Comandos para el editor VI

  3. ¿"xterm" o "xterm" en el archivo de configuración?

  4. ¿Qué protocolo/estándar utilizan los terminales?

  5. ¿Por qué aparecen nuevos terminales en Awesome Spawn con Shlvl>1?

Los mejores terminales Linux en línea y editores Bash en línea

Usar el editor vi

Cómo usar el comando de pantalla en Linux para administrar terminales

Vim cambia el cursor del bloque cuando está en modo de inserción

Urwid:hacer el cursor invisible

Agitar para ubicar la función del cursor