Come riparare Ctrl + frecce in Vim?


26

Sto usando la Putty -> Suse box -> vim 7.2combo per la modifica e voglio rimappare la combinazione di tasti Ctrl + frecce per una determinata attività. Ma per qualche motivo, Vim ignora il collegamento e passa alla modalità di inserimento e inserisce il carattere "D" (a sinistra) di "C" (a destra).

Quale parte della mia configurazione tastiera / terminale è la colpa e come risolverlo?


PuTTY non invia sequenze utilmente distinte per le frecce di controllo. Nessuna delle risposte suggerite è corretta (o utile).
Thomas Dickey,

Risposte:


27

Scopri esattamente quale sequenza di escape il tuo terminale invia per Ctrl+ freccia digitando Ctrl+ V, Ctrl+ freccia in modalità inserimento: questo inserirà letteralmente il ESCcarattere principale (mostrato come ^[in vim), seguito dal resto della sequenza di fuga. Quindi racconta a Vim di queste sequenze di escape con qualcosa di simile

map <ESC>[5D <C-Left>
map <ESC>[5C <C-Right>
map! <ESC>[5D <C-Left>
map! <ESC>[5C <C-Right>

Mi sembra di ricordare che Putty ha un'impostazione predefinita per la modalità Chiavi del cursore dell'applicazione che è scomoda (ho dimenticato il perché), potresti voler prima attivare questa impostazione.

Si noti che sebbene le sequenze di escape variano tra i terminali, i conflitti (ovvero una sequenza di escape che corrisponde a chiavi diverse in terminali diversi) sono rari, quindi non è necessario provare ad applicare le mappature solo su un particolare tipo di terminale.


Come faccio a sapere quale sequenza di escape viene inviata?
Alex B,

@Alex: ho provato a chiarire la mia spiegazione, mi lamento se ancora non capisci la mia prima frase.
Gilles 'SO- smetti di essere malvagio' il

È inoltre possibile eseguire od -ao od -cse si scava ottale e quindi digitare le chiavi in ​​questione. Vedi "aggiunto" nella mia risposta per un esempio.
msw,

Ci scusiamo per tornare a questa domanda così tardi, ma ho capito che PuTTY invia ancora i tasti cursore dell'applicazione al terminale, anche dopo averlo spento completamente . Sono in perdita cos'altro dovrei modificare per farlo andare via.
Alex B,

@Alex: Non è necessario che scompaia, puoi parlarne alle tue applicazioni (che ho trovato essere il percorso di minor resistenza). Oppure puoi sostituire PuTTY con una delle alternative come mintty plus Cygwin ssh (ma è fuori tema per questo sito).
Gilles 'SO- smetti di essere malvagio' il

7

La tua scommessa migliore è probabilmente quella di guardare la configurazione della modalità Chiavi del cursore dell'applicazione di PuTTY .

Le sequenze predefinite vengono inviate ESCcome prefisso e [seguite da Append o hange Co altre cose che ti mettono in modalità inserimento.

aggiunto, seguendo Gilles

Una versione leggermente più esplicita dell'uscita ^ V può essere vista con od (1). Qui sto scrivendo ^ Su, ^ Giù, ^ Destra, ^ Sinistra sul mio terminale:

$ od -a
0000000 esc   [   1   ;   5   A esc   [   1   ;   5   B esc   [   1   ;
0000020   5   C esc   [   1   ;   5   D

Quindi il mio terminale invia ^[[1;5Aquando premo Ctrl+


Disattivare la modalità Tasti cursore applicazione non sembra essere d'aiuto.
Alex B,


0

per il mio questo e altri problemi della tastiera VIM che faccio semplicemente

vim ~/.vimrc
set nocompatible
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.