Ich habe die Dokumentation durchgesehen, und ich muss sagen, dass ich keinen Weg finden konnte, den aktuellen vi-Modus zu erkennen und anzuzeigen. Ich hoffe, dass Sie eine angenehme Überraschung haben und jemand eine Lösung findet, aber ich sehe keine Möglichkeit, das zu tun, was Sie fragen.
Ich denke, dass es einen Weg gibt, dies zu tun, aber es ist ein massiver Overkill für einen winzigen Ärger, und ich glaube nicht, dass Sie daran gedacht haben, als Sie diese Frage gestellt haben. Wenn dies wahr ist, hören Sie jetzt auf zu lesen und genießen Sie Ihr Leben.
OTOH, wenn dies wirklich dein Haustier ist, und es macht dich verrückt, und du willst dieses Problem wirklich unbedingt lösen, hier ist meine Idee, wie du damit umgehen sollst:
- Holen Sie sich eine Kopie der erweiterten Programmierung in der UNIX (R) -Umgebung von W. Richard Stevens.
- Lesen Sie die Kapitel zu Streams und Terminal I / O.
- Laden Sie den Quellcode in das oben genannte Buch herunter, das ein Beispiel für einen Stream enthält, der auf einem Terminal angeordnet werden kann.
- Implementieren Sie Ihr Handling für die Esc-Tastenkombination (oder beide Moduswechsel-Tastenkombinationen) und geben Sie dies durch eine Klingel oder Hintergrundmanipulation der aktuellen Zeile an.
Kurz gesagt, Unix implementiert Terminal-E / A als Vollduplex-E / A-Stream zwischen dem Gerätetreiber und dem Benutzerprozess, in den Module eingefügt werden können. Es ist als Stapel organisiert, sodass Sie beliebig viele Streams schichten können. Die Summe der injizierten Streams erzeugt das E / A-Verhalten des Terminals.
Wenn ein Zeichen eingegeben wird, kann das erste Modul es prüfen und weitergeben (falls gewünscht). Wenn die Antwort in der entgegengesetzten Richtung eintrifft, hat sie erneut die Möglichkeit, sie zu überprüfen und weiterzuleiten. Auf diese Weise wird eine Strg-C auf einer höheren Ebene als eine normale Zeichentaste behandelt.
Sie können ein Binärprogramm erstellen, das ein Stream-Modul implementiert, das bei Aufruf automatisch im Vordergrund ausgeführt wird, alle Tastatureingaben überprüft und weiterleitet und Ihre bevorzugte Aktion für die Tastatureingaben ausführt, die Sie interessieren. Für alle Zwecke und Zwecke sieht es so aus, als würden Sie an der Shell arbeiten. Oooh Sie können diese Binärdatei in der letzten (oder ersten oder beliebigen) Zeile Ihres .tcshrc aufrufen, und Sie würden nicht einmal wissen, dass sie vorhanden ist.
Es gibt eine gute Grundierung hier, aber ich kann nicht viel zu diesem Thema finden, wahrscheinlich, weil es hinter seiner höchsten Vollkommenheit ist.