如何在vim中映射{Ctrl 0, - ,=}键?

kev*_*kev 2 mapping vim keyboard-shortcuts ubuntu-12.04

我的键盘布局(第2行):

`1...0-=Backspace

我要地图函数调用Ctrl+ 0,-,=.

这是我创建的功能:

" 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
Run Code Online (Sandbox Code Playgroud)

如何将函数调用映射到这些键?

Ing*_*kat 7

注意在命令行模式下,Ctrl- _结果^_,但是Ctrl- 0并且Ctrl- =什么都不产生.

由于该键盘输入是内部处理,区分这个问题,以及许多其他的组合键的方式(如Ctrl+ LetterCtrl+ Shift+ Letter)今天不幸是不可能的,即使是在GVIM.这是一个众所周知的痛点,也是关于vim_dev和#vim IRC频道的各种讨论的主题.

有些人(最重要的是Paul LeoNerd Evans)希望解决这个问题(即使是支持这种情况的终端中的控制台Vim),并提出了各种提案,cp.链接

但截至今天,尚未有任何补丁或志愿者挺身而出,尽管许多人表示希望在未来的Vim 8主要版本中使用它.