quando si esegue la schermata su OSX, il comando + r confonde i tasti freccia in vim su tutte le schermate


15

Come si svolge questo? perché finisci per premere il comando r tutto il tempo per ricaricare il tuo browser, e spesso sei nel terminale.

Dal momento che non ho capito come riattivare i tasti freccia, attualmente uccido tutti i miei schermi e riavvio dello schermo, il che è una seccatura.

Risposte:


28

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+Dper staccare lo schermo dal tuo terminale, quindi corri screen -D -Rper ricollegarlo. Questo dovrebbe far funzionare nuovamente i tasti freccia.

Se non sei sullo schermo, ma solo su Vim, puoi CTRL+Ze digitare fgper 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 [ Aa 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


Un altro problema potrebbe essere il tipo di terminale che confonde vim, vedi Chiavi incasinate in vim quando si esegue all'interno di tmux
kynan

grazie per questa soluzione! questo mi ha infastidito come sviluppatore web. nel browser hai colpito molto cmd-r per aggiornare lo schermo e ogni tanto dovevo aver colpito cmd-r in modo casuale per caso. non riuscivo a capire perché i miei tasti freccia fossero stati cancellati fino ad ora. e per te i puristi di hjkl là fuori, il motivo principale per cui non uso hjkl è perché non sono disponibili per il movimento del cursore in modalità inserimento. risolvi il problema e riconsidererò.
rev


1

Se stai usando iTerm, puoi riavere la tua sessione vim premendo command+decommand+w

Perché?

command+d dividerà il pannello dei terminali, ripristinando magicamente quello da cui provenite.

command+w ora chiuderà quel riquadro diviso che hai appena aperto.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.