Ich bin ziemlich neu in der Programmierung, aber ich habe mich gefragt, wie Shell-Texteditoren wie vim, emacs, nano usw. das Befehlszeilenfenster steuern können. Ich bin hauptsächlich ein Windows-Programmierer, also ist es vielleicht anders auf * nix. Soweit ich weiß, ist es nur möglich, Text auf einer Konsole zu drucken und nach Eingabe zu fragen. Wie erstellen Texteditoren ein navigierbares, bearbeitbares Fenster in einer Befehlszeilenumgebung?
Indem Sie Bibliotheken wie die folgenden verwenden, die wiederum Escape-Zeichenfolgen verwenden
%Vor%Kurze Antwort: Es gibt Bibliotheken dafür (wie Flüche, Slang).
Längere Antwort: Dinge wie das Springen mit dem Cursor oder das Ändern der Farben werden durch das Drucken spezieller Zeichenfolgen (sogenannte Escape-Sequenzen, weil sie mit dem ESC-Zeichen beginnen) ausgeführt.
Wenn Sie etwas über ncurses erfahren, ist das ein guter Ausgangspunkt.
Es gibt ein altes Protokoll namens vt100, das auf einem "VT100" Terminal basiert. Es verwendete Codes, die mit Escape begannen, um die Cursorposition, die Farbe, das Löschen des Bildschirms usw. zu steuern.
Sie erhalten auch farbige Eingabeaufforderungen.
Google VT100 oder "Terminal-Escape-Codes"
edit: Ich habe es für Sie gegoogelt: Ссылка
Auf Unix-Systemen emuliert ein Konsolenfenster ein altes serielles Terminal (normalerweise ein VT100 ). Sie können spezielle Steuerzeichen und Escape-Sequenzen drucken, um den Cursor zu bewegen, Farben zu ändern und andere Spezialeffekte auszuführen. Es gibt Bibliotheken, die helfen, die Details zu behandeln; ncurses ist am beliebtesten.
Unter Windows wird die [Win32 Console API] ( bietet ähnliche Funktionalität, aber auf eine andere Art und Weise.
Geben Sie in der Befehlszeile "c: \ winnt \ system32 \ edit" oder "c: \ windows \ system32 \ edit" ein, und Sie sehen einen Befehlszeilen-Texteditor.
Mit dem ESC-Zeichen, das zur Steuerung des Befehlsbildschirms verwendet wird, haben die meisten Leute recht, aber einige ältere Programme schreiben auch Zeichen direkt in den Speicherbereich, der vom Windows-Befehlszeilenbildschirm verwendet wird.
Um das Befehlszeilenfenster zu steuern, mussten Sie Ihre eigenen Fensterformulare, Eingabefelder, Menüs usw. schreiben. Sie müssten das Ganze auch in eine große Schleife für die Behandlung von Ereignissen einpacken.
Mehr Windows-Befehlszeilen-spezifisch, ruft die App normalerweise DOS- oder BIOS-Funktionen auf, die dasselbe tun. Manchmal ist ANSI-Befehlscodeunterstützung verfügbar, manchmal nicht (abhängig von der genauen MS-Betriebssystemversion und ob sie zum Laden konfiguriert ist).
Tags und Links shell text-editor