A questa domanda è stata data una risposta qui: quando si esegue la schermata su OSX, command + r confonde i tasti freccia in vim su tutte le schermate
Risposta copiata:
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 chiudere 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 esegui lo schermo -D -R per ricollegarlo. Questo dovrebbe far funzionare nuovamente i tasti freccia.
Se non sei nella schermata, ma solo in 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 fare questo è Esc [? 1 ora Il comando di reset 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