Ich benutze die vi-Tastenkombinationen in meiner tcsh-Shell.
Jetzt weiß ich nicht, in welchem vi-Modus ich mich befinde ( insert
Modus oder command
Modus), was zu viel Frustration führt.
Kennt jemand eine Möglichkeit, den aktuellen vi-Modus in der Shell anzuzeigen? (durch Einfügen in die Eingabeaufforderung oder etwas)
quelle
Ich habe die Dokumentation durchgesehen und muss sagen, dass ich keine Möglichkeit gefunden habe, den aktuellen vi-Modus zu erkennen und anzuzeigen. Ich hoffe, dass Sie eine angenehme Überraschung haben und jemand eine Lösung findet, aber ich kann auf keinen Fall einen Weg finden, das zu tun, wonach Sie fragen.
Ich denke, es gibt einen Weg, dies zu tun, aber es ist ein gewaltiger Overkill für einen winzigen Ärger, und ich glaube nicht, dass Sie das im Sinn hatten, als Sie diese Frage stellten. Wenn dies zutrifft, hören Sie jetzt auf zu lesen und genießen Sie Ihr Leben.
OTOH, wenn das wirklich dein Lieblingsfieber ist und es dich verrückt macht und du unbedingt dieses Problem lösen willst, hier ist meine Idee, wie du vorgehen sollst:
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 überlagern können. Die Summe der eingespeisten Streams erzeugt Ihr Terminal-E / A-Verhalten.
Wenn ein Zeichen eingegeben wird, muss das erste Modul es überprüfen und weitergeben (wenn es möchte). Wenn die Antwort in die entgegengesetzte Richtung eingeht, kann sie erneut überprüft und weitergeleitet werden. Auf diese Weise wird eine Strg-C-Taste auf einer höheren Ebene als eine normale Zeichentaste behandelt.
Sie können eine Binärdatei erstellen, die ein Stream-Modul implementiert, das beim Aufrufen unbemerkt im Vordergrund ausgeführt wird, alle Tastenanschläge überprüft und weiterleitet und Ihre bevorzugte Aktion für die von Ihnen gewünschten Tastenanschläge ausführt. In jeder Hinsicht 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 einer beliebigen) Zeile Ihrer .tcshrc-Datei aufrufen, und Sie würden nicht einmal wissen, dass sie vorhanden ist.
Es gibt hier eine gute Grundierung , aber ich konnte nicht viel zu diesem Thema finden, wahrscheinlich, weil es nach der Grundierung ist .
quelle
Diese Seite hat ein ziemlich detailliertes Skript, das festlegt, was Sie in zsh wollen (und mehr) . Vielleicht könnte es angepasst werden, um mit tcsh zu arbeiten (ich kenne diese Shell nicht so gut).
quelle
Befehlszeilenbearbeitung mit tcsh
Weitere Hinweise auf der oben bereits verlinkten
tcsh
Anpassungsseite .quelle
Ich hatte genau das gleiche Problem und habe aus Versehen die Lösung gefunden. Obwohl dieser Thread alt ist, konnte ich keine andere Website finden, die eine Lösung anbot. Daher gehe ich davon aus, dass das Posten in diesem Thread in Ordnung ist.
Setzen Sie einfach die Einstellungen Ihres Terminalprogramms oder Ihrer Shell zurück. Ich verwende zurzeit PuTTY und habe gerade meine gespeicherten Einstellungen für meine gespeicherte Verbindung gelöscht und eine gespeicherte Sitzung neu erstellt. Lief wie am Schnürchen.
Hoffe das hilft!
quelle
Bitte sehen Sie meine Antwort auf SO . Bash 4.4 / Readline 7.0 wird diese Funktionalität unterstützen. In der Zwischenzeit habe ich gepatchte Versionen von Bash 4.3 / Readline 6.3 auf github veröffentlicht .
quelle
Für alle, die genau dieses Problem haben (wie ich): Ich habe bei stackoverflow eine Lösung gefunden . Offensichtlich gibt es dafür native Unterstützung in readline, so dass Sie einfach Folgendes zu Ihrer hinzufügen können
~/.inputrc
:Und um den eigentlichen Charakter anzupassen, benutze:
quelle