GNU/Linux >> Linux Esercitazione >  >> Linux

Movimento del cursore nei terminali?

Sto cercando di capire come le conchiglie spostano il cursore sullo schermo (spostandosi, inserisci i tasti freccia e simili).

Ho fatto molti test e non ho trovato alcuna chiamata di sistema che consenta il movimento del cursore dello schermo in un terminale. Questo viene fatto utilizzando estensioni di terminale specifiche? Se è così, c'è qualche documentazione su come questo viene raggiunto, diciamo, xterm?

Questo mi ha fatto impazzire, ogni luce che puoi fare su questo è apprezzata.

Risposta accettata:

Non esiste tale chiamata di sistema o un insieme di chiamate di sistema. È tutto fatto per convenzione.

Ai vecchi tempi, quando un "terminale" era un grosso pezzo goffo di equipaggiamento collegato a un computer tramite un cavo, i "terminali intelligenti" facevano cose come spostare il cursore, o disegnare una linea, o riempire un poligono con i colori . Il terminale intelligente di solito lo faceva tramite "sequenze di fuga". Un programma ha emesso una sequenza speciale di valori di byte, che di solito iniziano con ASCII 0x1b, 'ESC', per spostare un cursore, o colorare una parola, o qualcosa di speciale diverso dall'imitazione di una telescrivente.

Questa è la "convenzione". Al giorno d'oggi, un "terminale" è quasi sempre solo una finestra tra le tante su uno schermo bitmap, xterm, rxvt, ecc ecc. Sta a xterm (o rxvt o altro) leggere i byte provenienti dal "programma" in esecuzione al suo interno, e interpretare quei byte secondo una data convenzione. L'ho appena digitato in una delle mie finestre di xterm:

6 % echo $TERM 
xterm

Ma so che i vecchi, vecchi xterms dicevano "vt100" in quel caso. Qualsiasi programma che "sposta il cursore" deve emettere sequenze di escape affinché la convenzione "xterm" sposti il ​​cursore in un'istanza xterm.

Potresti fare man curses e man terminfo per ulteriori informazioni.

PS

Le persone hanno realizzato interi sistemi di finestre con sequenze di escape. Vedi MGR come esempio.


Linux
  1. Perché mi attengo a xterm

  2. Comandi per l'editor VI

  3. "xterm" o "xterm" nel file di configurazione?

  4. Movimento Vim su altri programmi

  5. Vim copia-incolla tra i terminali

I migliori terminali Linux online e gli editor Bash online

Usa vi Editor

Come utilizzare il comando dello schermo su Linux per gestire i terminali

Vim cambia il cursore del blocco quando è in modalità di inserimento

Urwid:rende invisibile il cursore

Agitare per individuare la funzione del cursore