GNU/Linux >> Tutoriels Linux >  >> Linux

Mouvement du curseur dans les terminaux ?

J'essaie de comprendre comment les obus déplacent le curseur à l'écran (se déplacer, saisir les touches fléchées, etc.).

J'ai fait beaucoup de tests et je n'ai trouvé aucun appel système permettant le déplacement du curseur à l'écran dans un terminal. Est-ce fait à l'aide d'extensions de terminal spécifiques ? Si oui, existe-t-il une documentation expliquant comment cela est réalisé pour, disons, xterm ?

Cela me rend fou, toute lumière que vous pouvez apporter à ce sujet est appréciée.

Réponse acceptée :

Il n'y a pas un tel appel système, ou ensemble d'appels système. Tout se fait par convention.

À l'époque, lorsqu'un « terminal » était un gros équipement encombrant relié à un ordinateur via un câble, les « terminaux intelligents » faisaient des choses comme déplacer le curseur, tracer une ligne ou remplir un polygone avec des couleurs. . Le terminal intelligent le faisait généralement via des "séquences d'échappement". Un programme émettait une séquence spéciale de valeurs d'octets, commençant généralement par ASCII 0x1b, "ESC", pour déplacer un curseur, ou colorer un mot, ou quelque chose de spécial autre que l'imitation d'un téléimprimeur.

C'est la "convention". De nos jours, un "terminal" n'est presque toujours qu'une fenêtre parmi tant d'autres sur un écran bitmap, xterm, rxvt, etc etc. C'est à xterm (ou rxvt ou autre) de lire les octets provenant du "programme" qui y tourne, et interpréter ces octets selon une convention donnée. Je viens de taper ceci dans l'une de mes fenêtres xterm :

6 % echo $TERM 
xterm

Mais je sais que les vieux, vieux xterms disaient "vt100" dans ce cas. Tout programme qui "déplace le curseur" doit produire des séquences d'échappement pour la convention "xterm" pour déplacer le curseur dans une instance xterm.

Vous pourriez faire des man curses et man terminfo pour plus d'informations.

PS

Les gens ont fait des systèmes de fenêtrage entiers avec des séquences d'échappement. Voir MGR comme exemple.


Linux
  1. Pourquoi je m'en tiens à xterm

  2. « xterm » ou « xterm » dans le fichier de configuration ?

  3. Mouvement Vim sur d'autres programmes

  4. Vim copier-coller entre les terminaux

  5. alt-d alt-f etc. cesse de fonctionner dans mon xterm

Meilleurs terminaux Linux en ligne et éditeurs Bash en ligne

Utiliser l'éditeur vi

Comment utiliser Screen Command sur Linux pour gérer les terminaux

Vim change le curseur de bloc en mode insertion

Urwid :rendre le curseur invisible

Secouez pour localiser la fonction du curseur