Vim - ritardo all'uscita dalla modalità visiva


8

Se premo ESC per uscire dalla modalità visiva dopo aver selezionato del testo, c'è un notevole ritardo prima che il testo venga deselezionato e torno alla modalità normale (anche se seleziono solo 1-2 caratteri). Questo ritardo può essere evitato?

vim  delay 

Risposte:


2

Ciò può essere causato dall'associazione ad alcune funzionalità aggiuntive. Ad esempio, utilizzo il plug-in della barra delle schede e mappa 0-9 per passare al buffer dei numeri. Ogni volta che un tasto viene associato a funzionalità aggiuntive come questa, vim attende alcuni secondi dopo averlo premuto per vedere se si preme un tasto aggiuntivo.

Per vedere se ci sono mappature aggiuntive, esegui :mape cerca <Esc>nella prima colonna. Se eseguito senza parametri, :mapelencherà tutti i mapping personalizzati. Se si desidera elencare solo i mapping mentre si è in modalità visiva, eseguire :vmap.

Se ha mappature aggiuntive, non conosco un modo per rimuovere la pausa, oltre a rimuovere le mappature. La pausa è necessaria affinché Vim sappia inequivocabilmente quale azione intendi intraprendere.


1
Nei terminali di tipo VT100 (inclusi i terminali Xterm / Rxvt / PuTTY / GNOME), Escè presente anche il prefisso per tutti i tasti speciali, inclusi anche i tasti freccia.
user1686

@grawity: vero, ma Vim utilizza valori di timeout diversi per quelle sequenze di escape rispetto a quelli per i mapping, quindi la gestione di tali sequenze di escape di solito non causa il problema riportato qui. Vedere :help 'timeout'.
garyjohn,

Grazie. Ora devo solo scoprire quali sono quei mapping che interferiscono con il mio utilizzo.

0

Non ho alcun mapping associato a <ESC> a livello globale o per la modalità Visual (la chiamata: vmap dettagliata <ESC> non fornisce risultati) ma c'è ancora un ritardo significativo all'uscita dalla modalità Visual. Anche su installazioni nuove senza vimrc è presente il ritardo. L'uso di <Cc> consente di uscire senza indugio dalla modalità visiva.

Dato che non mi piace premere <Cc> per uscire da qualsiasi modalità, attualmente mappa <ESC> su <Cc> in modalità visiva. Questo esce dalla modalità visiva usando <ESC> senza alcun ritardo.

:vmap <ESC> <C-c>

Oppure inserisci la seguente riga nel tuo vimrc

vnoremap <ESC> <C-c>

Questo non funzionerà se si hanno mappature della modalità globale o visiva associate a <ESC>.


-2

Quello che puoi ancora fare è usare CTRL+ Cper uscire dalla modalità Visual, che dovrebbe evitare il ritardo.

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.