2012-07-11 11 views
8

voglio mappare Alt + Maiusc + ] e Alt + Maiusc + [ a gt e gT (quindi funziona come su Mac)mappa alt + shift +] in vim

Come posso fare perché non sembra funzionare se faccio semplicemente questo:

map <A-S-]> gt 

In qualche modo ] deve essere sfuggito o qualcosa di simile

risposta

12

Non c'è niente di sbagliato in questa definizione. Vim mapperà correttamente quella combinazione ma non lo fa nel modo in cui ti aspetti. Cosa che la mappatura dice in sostanza è

Quando Shift + Alt è colpito, oltre a ]

Su una tastiera standard il carattere ] quando combinato con Maiusc produrrà }. Ciò significa che Vim non vedrà mai lo ] in combinazione con Shift ma che invece vede solo }. Puoi sfruttarlo per ottenere il comportamento che stai cercando. Provate il seguente mapping invece (supponendo tastiera QWERTY standard)

:map <A-}> gt 
:map <A-{> gT 
+0

Whoa, chi avrebbe mai pensato! grazie – BPm

+1

questo non funziona per me ... Sono su un Mac, nel caso che sia rilevante. – iconoclast

12

Quando si desidera rimappare i tasti in vim, è spesso una buona idea per andare alla modalità di inserimento, ha colpito Ctrl + V, quindi digitare il chiave che si desidera rimappare. In questo caso, viene visualizzato il carattere Escape (Ctrl + [ seguito da }.

mi piace utilizzando la notazione <A-}>, ma si potrebbe avere risolto il problema modificando il file .vimrc, inserire il testo map, poi colpendo Ctrl + V e colpire Alt + Maiusc +] e poi aggiungendo gt. Si potrebbe finire con una linea come

map ^[} gt 

(ma con un carattere effettivo Escape piuttosto che un ^ e [ come ho dovuto digitare qui) e che avrebbe funzionato.

P.S. Quando ho provato questo, Alt + Maiusc + [ funzionava bene, ma Alt + Maiusc +] sembra essere già in uso nella mia copia di vim. Non sono sicuro di quello che fa ma rimapparlo non funziona per me. Quando digito

:map <A-}> 

esso stampa No mapping found.

+3

grazie per il suggerimento 'ctrl + v'! – BPm

+0

Prego! :-) Indietro nel giorno, ho usato quel trucco per capire quale sequenza di escape avrebbe mandato un terminale stupido per una delle sue chiavi speciali. – steveha

+1

Funziona su un Mac (utilizzando il metodo control-v). – iconoclast

Problemi correlati