Ho il sospetto che Ctrl- ;non è possibile. Prima di entrare nel perché, lasciami discutere cosa è possibile.
bindkey -s '^;' '`date +%y%m%d | perl -pe chomp`'
Basta togliere la "c" dal tuo tentativo di usare Ctrl- Oe funziona benissimo.
Il tcsh
comando probabilmente non supporta Ctrl- il ;che è un progetto molto sensato, perché tcsh è pensato per funzionare con un terminale Unix tradizionale (o un software che si comporta in modo simile), e i terminali Unix tradizionali non supportano Ctrl- ;.
Quindi, perché i terminali Unix non supportano Ctrl- ;?
Il punto principale di tutte queste Ctrlsequenze era fornire un modo semplice per digitare / rappresentare i primi 32 caratteri ASCII perché quei caratteri non hanno caratteri facilmente abilitabili. L'equivalente diretto di Ctrl- ;non è poi così difficile da scrivere senza la necessità di una Ctrlsequenza, motivo per cui nessun carattere speciale Ctrl (come Ctrl- ;) è comunemente supportato.
Elaborerò. In primo luogo, noterò che gran parte di questa risposta è stata fatta facendo riferimento ad alcune informazioni che ho documentato, su CtrlSequenze, sul mio sito Web all'indirizzo ] [CyberPillar] [: CtrlSequenze di tastiere .
Una delle regole per i caratteri Ctrl è che se tieni premuto Ctrle premi un carattere con un valore ASCII compreso tra 63 e 95, finirai con un carattere che ha 64 in meno di un valore ASCII rispetto al carattere che hai premuto. (Sì, 64 viene sottratto da 63, se applicabile. Questo verrà discusso più avanti).
Un'altra regola è che se tieni premuto Ctrle premi un personaggio con un valore ASCII compreso tra 96 e 122, finirai con un carattere che è 96 in meno del carattere che hai digitato. Di conseguenza, Ctrl- Shift- A(lettera maiuscola) e Ctrl- a(lettera minuscola) finiranno con lo stesso carattere. Ecco perché se premi Ctrl- c, potresti vedere Ctrl- Cechi di nuovo. Il terminale converte ASCII 3 in una stringa che rappresenta Ctrl- Cdurante la preparazione del messaggio di output, ignorando il fatto che è stato premuto Ctrl- cper generare ASCII 3.
;(Punto e virgola) è ASCII 59, che non è ASCII da 64 a 95 né ASCII da 96 a 122. Pertanto, le regole appena specificate (che coprono ASCII da 63 a 122) non forniscono alcuna interpretazione comune per ASCII 59 (per coprire Ctrl- ;).
Un valore, che sembra un'eccezione, è la regola comunemente supportata, che è per Ctrl- ?. Se Ctrl- ;avesse un'interpretazione comune, allora l'interpretazione comune probabilmente seguirebbe lo stesso modello di Ctrl- ?. Il ?personaggio è ASCII 63. Quindi sottraendo 64 da 63 anni -1, che sostanzialmente equivale a 127 con una condizione di underflow, che può essere ignorata. Il risultato è che Ctrl- la ?combinazione di tasti finisce per aggiungere effettivamente 64, quindi 63 + 64 = 127. ASCII 127 spesso corrisponde alla Deletechiave, che può essere difficile da rappresentare poiché Deleteha un comportamento speciale comune (che consiste nell'eliminare il testo). Quindi ASCII 127 può spesso trarre sostanziali benefici avendo un supporto comuneCtrlsequenza. In questo modo, una persona può digitare il codice ASCII 127 in modo relativamente semplice, usando la sequenza della tastiera.
Seguendo quel modello (di aggiungere 64), Ctrl- ;si tradurrebbe in ASCII 123 che è una parentesi graffa sinistra (" {
"). La gente non supportava Ctrl- ;come un modo standard comune di scrivere {poiché {ha il suo modo relativamente semplice di inserirlo sulla tastiera (che è premendo Shift- [).