GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Cursorbewegung in Terminals?

Ich versuche mir vorzustellen, wie Muscheln den Bildschirmcursor bewegen (Bewegen Sie sich umher, geben Sie die Pfeiltasten ein und so).

Ich habe viele Tests durchgeführt und keinen Systemaufruf gefunden, der eine Bewegung des Bildschirmcursors in einem Terminal ermöglicht. Erfolgt dies über bestimmte Terminalerweiterungen? Wenn ja, gibt es eine Dokumentation darüber, wie dies beispielsweise für xterm erreicht wird?

Das hat mich verrückt gemacht, jedes Licht, das Sie darauf werfen können, wird geschätzt.

Akzeptierte Antwort:

Es gibt keinen solchen Systemaufruf oder Satz von Systemaufrufen. Es geschieht alles durch Konvention.

Früher, als ein „Terminal“ ein großes, klobiges Gerät war, das über ein Kabel mit einem Computer verbunden war, konnten „intelligente Terminals“ beispielsweise den Cursor bewegen, eine Linie zeichnen oder ein Polygon mit Farben füllen . Das Smart Terminal tat dies normalerweise über „Escape-Sequenzen“. Ein Programm gab eine spezielle Folge von Byte-Werten aus, normalerweise beginnend mit ASCII 0x1b, „ESC“, um einen Cursor zu bewegen, ein Wort zu färben oder irgendetwas anderes zu tun, als eine Fernschreibmaschine zu imitieren.

Das ist die „Konvention“. Heutzutage ist ein „Terminal“ fast immer nur ein Fenster unter vielen auf einem Bitmap-Bildschirm, xterm, rxvt usw. usw. Es liegt an xterm (oder rxvt oder was auch immer), die Bytes zu lesen, die von „dem Programm“ kommen, das darin läuft, und interpretieren diese Bytes gemäß einer gegebenen Konvention. Ich habe gerade Folgendes in eines meiner xterm-Fenster eingegeben:

6 % echo $TERM 
xterm

Aber ich weiß, dass alte, alte xterms in diesem Fall „vt100“ sagten. Jedes Programm, das „den Cursor bewegt“, muss Escape-Sequenzen für die „xterm“-Konvention ausgeben, um den Cursor in einer xterm-Instanz zu bewegen.

Du könntest man curses ausführen und man terminfo für weitere Informationen.

P.S.

Die Leute haben ganze Fenstersysteme mit Escape-Sequenzen gemacht. Siehe MGR als Beispiel.


Linux
  1. Warum ich bei xterm bleibe

  2. Befehle für den VI-Editor

  3. Welches Protokoll/welcher Standard wird von Terminals verwendet?

  4. Warum spawnen neue Terminals in Awesome mit Shlvl>1?

  5. Vim-Bewegung in anderen Programmen

Beste Online-Linux-Terminals und Online-Bash-Editoren

Verwenden Sie den vi-Editor

So verwenden Sie den Bildschirmbefehl unter Linux, um Terminals zu verwalten

Vim ändert den Blockcursor im Einfügemodus

Urwid:Cursor unsichtbar machen

Schütteln, um die Cursorfunktion zu lokalisieren