Pergunta

Layout do meu teclado (2ª linha):

`1...0-=Retrocesso

Quero mapear chamadas de função para Ctrl+ 0, -, =.

Esta é a função que criei:

" 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

Como posso mapear chamadas de função para essas chaves?

Foi útil?

Solução

Observe como no modo de linha de comando, Ctrl-_ resulta em ^_, mas Ctrl-0 e Ctrl-= não rende nada.

Devido à forma como a entrada do teclado é tratada internamente, diferenciando esta e muitas outras combinações de teclas (como Ctrl+Carta vs. Ctrl+Mudança+Carta) infelizmente não é possível hoje, mesmo no GVIM.Este é um ponto problemático conhecido e objeto de várias discussões no vim_dev e no canal de IRC #vim.

Algumas pessoas (principalmente Paul LeoNerd Evans) querem consertar isso (mesmo para o console Vim em terminais que suportam isso) e apresentaram várias propostas, cp. link

Mas até hoje, nenhum patch ou voluntário foi apresentado, embora muitos tenham expressado o desejo de ter isso em uma futura versão principal do Vim 8.

Outras dicas

http://vim.wikia.com/wiki/Fast_window_resizing_with_plus/minus_keys

apenas + e - ...... sem nome alternativo

:nmap + :echo "hello world"<CR>

É isso que você quer?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top