Das würde ich vermuten Ctrl- ;ist nicht möglich. Bevor wir uns mit dem Warum beschäftigen, lassen Sie mich darüber sprechen, was möglich ist.
bindkey -s '^;' '`date +%y%m%d | perl -pe chomp`'
Nehmen Sie einfach das "c" von Ihrem Versuch, Ctrl- zu verwenden O, und es funktioniert gut.
Der tcsh
Befehl wahrscheinlich nicht unterstützt Ctrl- ;, was eine sehr vernünftige Konstruktion, weil Tcsh gemeint ist, mit einem traditionellen Unix - Terminal (oder einer Software, die in ähnlicher Weise verhält) zu arbeiten, und traditionelles Unix - Terminals unterstützt nicht Ctrl- ;.
Also, warum nicht Unix - Terminals Unterstützung Ctrl- ;?
Der Hauptpunkt aller dieser CtrlSequenzen bestand darin, die ersten 32 ASCII-Zeichen auf einfache Weise einzugeben / darzustellen, da diese Zeichen keine leicht typisierbaren Zeichen haben. Das einfache Äquivalent zu Ctrl- ;ist nicht so schwierig zu tippen, ohne dass eine CtrlSequenz erforderlich ist. Aus diesem Grund wird normalerweise kein spezielles Ctrl-Zeichen (wie Ctrl- ;) unterstützt.
Ich werde näher darauf eingehen. Zunächst möchte ich anmerken, dass ein Großteil dieser Antwort auf einige von mir dokumentierte Informationen zu CtrlSequences auf meiner Website unter [CyberPillar] [: CtrlKeyboard Sequences ] verwiesen wurde .
Eine der Regeln für Strg-Zeichen lautet, wenn Sie Ctrlein Zeichen mit einem ASCII-Wert von 63 bis 95 gedrückt halten und drücken, erhalten Sie am Ende das Zeichen, das 64 weniger ASCII-Werte hat als das von Ihnen gedrückte Zeichen. (Ja, 64 wird gegebenenfalls von 63 abgezogen. Das wird später ausführlicher besprochen.)
Eine andere Regel ist, dass Sie Ctrlein Zeichen mit 96 Zeichen weniger als das eingegebene Zeichen erhalten, wenn Sie ein Zeichen mit einem ASCII-Wert von 96 bis 122 gedrückt halten. Als Ergebnis erhalten die Buchstaben Ctrl- Shift- A(Großbuchstaben) und Ctrl- a(Kleinbuchstaben) das gleiche Zeichen. Deshalb, wenn Sie die Taste Ctrl- c, Sie sehen können Ctrl- CEcho zurück. Das Endgerät wandelt die ASCII 3 in eine Zeichenfolge, die Ctrl- Cwenn die Ausgangsnachricht vorbereitet, ignoriert die Tatsache, dass man gedrückt Ctrl- cdie ASCII - 3 zu erzeugen.
;(Semikolon) ist ASCII 59, also nicht ASCII 64 bis 95 und ASCII 96 bis 122. Daher geben die soeben angegebenen Regeln (ASCII 63 bis 122) keine gemeinsame Interpretation für ASCII 59 (zur Deckung Ctrl- ;).
Ein Wert, der sich wie eine Ausnahme anfühlt, ist die allgemein unterstützte Regel, die für Ctrl- steht ?. Wenn Ctrl- ;eine gemeinsame Interpretation hätte, würde die gemeinsame Interpretation wahrscheinlich dem gleichen Muster wie Ctrl- folgen ?. Das ?Zeichen ist ASCII 63. Wenn Sie also 64 von 63 yeilds -1 abziehen, entspricht dies grundsätzlich 127 mit einer Unterlaufbedingung, die ignoriert werden kann. Das Ergebnis ist, dass Ctrl- die ?Tastenkombination tatsächlich 64 addiert, also 63 + 64 = 127. ASCII 127 entspricht oft dem DeleteSchlüssel, was schwierig zu repräsentieren ist, da Deletees ein allgemeines spezielles Verhalten gibt (das Löschen von Text). Daher kann ASCII 127 häufig wesentlich von einer gemeinsamen Unterstützung profitierenCtrlSequenz. Auf diese Weise kann eine Person den ASCII-127-Code relativ leicht über die Tastaturfolge eingeben.
Nach diesem Muster (Hinzufügen von 64) würde Ctrl- ;zu ASCII 123 führen, bei dem es sich um eine linke geschweifte Klammer (" {
") handelt. Die Leute haben das nicht unterstützt Ctrl- ;als gängige Standardmethode für das Tippen, {da {es auf relativ einfache Weise auf der Tastatur eingegeben werden kann (durch Drücken von Shift- [).