Come mappare i tasti {Ctrl 0, -,=} in VIM?
-
12-12-2019 - |
Domanda
Layout della mia tastiera (2a riga):
` 1 ... 0 - = backspace
Voglio mappare le chiamate di funzione su ctrl + 0 , - , = .
Questa è la funzione che ho creato:
" it doesn't work
nnoremap <C-=> :call IncFontSize(+1)<CR>
" it works
nnoremap <C--> :call IncFontSize(-1)<CR>
" it doesn't work
nnoremap <C-0> :call IncFontSize(0)<CR>
fun! IncFontSize(inc)
if !exists('+guifont')
return
endif
let s:defaultfont = 'Ubuntu Mono 12'
if a:inc==0 || empty(&guifont)
let &guifont = s:defaultfont
return
endif
let &guifont = substitute(&guifont, '\d\+$', '\=submatch(0)+'.a:inc, '')
endfun
.
Come posso mappare le chiamate di funzione a questi tasti?
Soluzione
AVVISO Come in modalità riga di comando, ctrl - _ Risultati in ^_
, ma ctrl - 0 e ctrl - = non cedere nulla.
A causa del modo in cui l'ingresso della tastiera viene gestito internamente, differenziando questo così come molte altre combinazioni di tasti (come Ctrl + lettera vs. ctrl < / kbd> + shift + lettera ) Sfortunatamente non è possibile oggi, anche in Gvim. Questo è un punto di dolore noto e il soggetto di varie discussioni su Vim_Dev e il canale #Vim IRC.
Alcune persone (in primo luogo Paul Leonerd Evans) vogliono risolvere questo (anche per la console Vim nei terminali che supportano questo), e hanno fluttuato varie proposte, CP. link
Ma a partire da oggi, nessuna patch o volontari si è ancora andata avanti, anche se molti hanno espresso il desiderio di averlo in un futuro rilascio principale Vim 8.
Altri suggerimenti
http://vim.wikia.com/wiki/fast_window_resizing_with_plus/minus_keys .
Solo +
e -
...... NO NOME ALIAS
:nmap + :echo "hello world"<CR>
.
è quello che vuoi?