Perché cmd-r rovina Vim sul Mac? Cosa sta effettivamente cercando di fare?


19

Incontralo costantemente poiché sono uno sviluppatore web, 'cmd-r' ha l'effetto collaterale di impedire ai tasti freccia di funzionare in qualsiasi modalità, ma non riesco a immaginare che sia lo scopo e non sono stato in grado di trovare qualsiasi documentazione su cosa dovrebbe effettivamente fare.

Modifica: Apparentemente si tratta in realtà di un comando del terminale mac, "Invia reimpostazione", quindi suppongo che ora sia una domanda di "A quale scopo serve il comando di invio reimpostazione?" Spiega perché non sono riuscito a trovarlo nei documenti di VIM.

Risposte:


16

Per evitare questo fastidio, rimappare Command-R su "Ignora" nella mappatura dei tasti iTerm.

inserisci qui la descrizione dell'immagine


Grazie. Questo stava diventando terribilmente fastidioso.
ThinkingInBits

10

Questo mi succede anche quando non uso lo schermo e ho scoperto che posso tornare alla normalità cancellando il terminale che esegue vim (l'ho anche provato con tmux ma non con lo schermo:

:!clear

6

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


Sì, ho scoperto che dopo che ho pubblicato, ho visto "Il comando di reset del terminale inviato da Command + R ripristina i tasti cursore sui valori predefiniti", sarebbe comunque fantastico sapere esattamente perché ciò accada. Sinceramente sono per lo più interessante nel sapere quale sia l'uso previsto di questo comando, ma ciò non risponde.
GlyphGryph,
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.