Ho dato un'occhiata alla documentazione e dovrei dire che non sono riuscito a trovare alcun modo per rilevare e visualizzare l'attuale modalità vi. Spero che tu abbia una piacevole sorpresa e qualcuno trovi una soluzione, ma di certo non riesco a vedere un modo per fare ciò che chiedi.
Penso che ci sia un modo per farlo, ma è eccessivo per un piccolo fastidio, e non penso che questo sia ciò che avevi in mente quando hai posto questa domanda. Se questo è vero, smetti di leggere ora e goditi la vita.
OTOH, se questa è davvero la tua pipì per animali domestici, e ti sta facendo impazzire, e vuoi davvero assolutamente disperare di risolvere questo problema, ecco la mia idea di come procedere:
- Ottieni una copia di Advanced Programming in UNIX (R) Environment di W. Richard Stevens.
- Leggi i capitoli su Stream e Terminal I / O.
- Scarica il codice sorgente nel libro di cui sopra, che include un esempio di un flusso che può essere stratificato su un terminale.
- Implementa la tua gestione per la combinazione di tasti Esc (o entrambi i tasti di modifica della modalità) e indica tramite una campana o una manipolazione in background della linea corrente.
In breve, Unix implementa l'I / O terminale come un flusso I / O full duplex tra il driver del dispositivo e il processo utente, in cui è possibile inserire i moduli. È organizzato come una pila, quindi puoi sovrapporre tutti i flussi che desideri. La somma dei flussi iniettati crea il comportamento I / O terminale.
Quando viene inserito un personaggio, il primo modulo arriva a ispezionarlo e trasmetterlo (se lo desidera). Quando la risposta arriva nella direzione opposta, ha di nuovo la possibilità di ispezionarla e trasmetterla. Questo è il modo in cui un Ctrl-C viene gestito a un livello superiore rispetto a un normale tasto carattere.
È possibile creare un binario che implementa un modulo stream, che quando viene richiamato viene eseguito silenziosamente in primo piano, ispezionando e passando tutte le sequenze di tasti, eseguendo l'azione preferita sulle sequenze di tasti che ti interessano. A tutti gli effetti, sembrerà che tu stia lavorando sulla shell. Oooh. Puoi invocare questo binario sull'ultima (o prima, o su qualsiasi) riga del tuo .tcshrc e non sapresti nemmeno che è lì.
C'è un buon primer qui , ma non sono riuscito a trovare molto su questo argomento, probabilmente perché è passato agli inizi.