Come un buon piccolo sostenitore di Vim, mi sento obbligato a dirti di imparare a usare hjkl come i tasti cursore. A metà dell'esplorazione del problema, ho pensato che si fosse misteriosamente risolto da solo, fino a quando mi sono reso conto che stavo testando usando hjkl invece dei veri tasti freccia.
Comunque, ora per una vera risposta.
Invece di spegnere tutti gli schermi e riavviare, puoi sfruttare la capacità dello schermo di spostarsi tra i terminali. Premi CTRL+A
CTRL+D
per staccare lo schermo dal tuo terminale, quindi corri screen -D -R
per ricollegarlo. Questo dovrebbe far funzionare nuovamente i tasti freccia.
Se non sei sullo schermo, ma solo su Vim, puoi CTRL+Z
e digitare fg
per lo stesso effetto.
Potresti anche aggirare il problema del tasto cursore in Vim, ma il ripristino potrebbe aver modificato altre opzioni del terminale, quindi è più sicuro fare come descritto sopra per non vedere altri problemi di visualizzazione / tastiera casuali. Se vuoi comunque i rimappaggi, eccoli qui:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
Dettagli sporchi:
Sia Vim che lo schermo usano la libreria ncurses per gestire il terminale. Una delle cose che ncurses sta facendo quando assume il controllo di un terminale compatibile con VT100 è la commutazione dei tasti freccia in "modalità applicazione", che modifica i codici che emettono. Il tasto freccia su, ad esempio, cambia da Esc
[
A
a Esc
O
A
. Il codice di controllo VT100 che emette per farlo è Esc
[
?
1
h
. Il comando di reimpostazione del terminale inviato da Command + R ripristina i tasti cursore sui valori predefiniti.
Staccare e ricollegare lo schermo fa sì che ncurses riprenda il controllo del terminale, riapplicando tutte le impostazioni che gli piacciono, quindi è probabilmente il modo più portatile e affidabile per ripristinare le cose alla normalità.
Codici di controllo VT100: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm