2014-05-08 21 views
7

Sto provando a mappare premendo [ctrl] + [punto e virgola] in modalità di inserimento per spostarmi alla fine della riga e aggiungere un punto e virgola. È qualcosa che mi ritrovo a fare molto dopo aver installato il plugin surround.Come posso mappare Ctrl + punto e virgola per aggiungere un punto e virgola alla fine della riga?

ho provato a fare funzionare questo comando

inoremap <c-;> <esc>A;<esc> 

ma quando provo, mi esce dalla modalità di inserimento, e va in modalità di comando. Provare con un altro modificatore d produce lo stesso risultato.

Il punto e virgola non può essere mappato con un modificatore? Cosa sto sbagliando?

risposta

4

Non ho letto attentamente la tua domanda, ho appena visto che la mappatura ti ha tolto dalla modalità di inserimento e dall'ultimo <esc> ... colpa mia.

Si desidera mappare ctrl+; vim non può acquisire il codice. ci sono alcune combinazioni di tasti che non possono essere mappate in vim. ; è uno di questi, un altro esempio come ctrl+=.

quindi potresti voler scegliere un'altra mappatura.

btw, si può provare in modalità inserimento premere ctrl-v quindi il keycombination per vedere se potrebbe essere utilizzato.

+0

ottenuto lo stesso risultato:/ – fent

+0

@DeaDEnD vedere aggiornare – Kent

+1

@DeaDEnD anche, FYI: http://vim.1045645.n5.nabble.com/Mapping-ctrl-ctrl-semicolon-td1193549.html – Kent

3

A seconda del terminale è possibile impostare i mapping. Ad esempio se si utilizza urxvt, in ~/.Xresources aggiuntivo:

URxvt.keysym.C-semicolon: \033[; 

E in ~/.vimrc aggiuntivo:

map <Esc>[; <C-Semicolon> 
map! <Esc>[; <C-Semicolon> 

Poi si dovrebbe essere in grado di mappare in questo modo (non testato):

inoremap <c-Semicolon> <Esc>A;<Esc> 

Io uso questo per mappare il movimento della finestra divisa come questo (questo funziona per me):

.210
Problemi correlati