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

Mapping 如何在vim中映射{Ctrl 0,-,=}键?,mapping,keyboard-shortcuts,vim,ubuntu-12.04,Mapping,Keyboard Shortcuts,Vim,Ubuntu 12.04,我的键盘布局(第二行): `1…0-=退格 我想将函数调用映射到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(

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

`1…0-=退格

我想将函数调用映射到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
“它不起作用
nnoremap:调用IncFontSize(+1)
“它起作用了
nnoremap:调用IncFontSize(-1)
“它不起作用
nnoremap:调用IncFontSize(0)
有趣!IncFontSize(公司)
如果!存在(“+guifont”)
返回
恩迪夫
让我们:defaultfont='ubuntumono 12'
如果a:inc==0 | |空(&guifont)
let&guifont=s:defaultfont
返回
恩迪夫
让&guifont=substitute(&guifont,'\d\+$','\=submatch(0)+'.a:inc',)
结束
如何将函数调用映射到这些键?

只有
+
-
…没有别名

:nmap + :echo "hello world"<CR>
:nmap+:回显“hello world”

这是您想要的吗?

请注意,在命令行模式下,Ctrl-u如何导致
^
,但Ctrl-0和Ctrl-=不产生任何结果

由于内部处理键盘输入的方式,很不幸,即使在GVIM中,也无法区分这一组合以及许多其他组合键(如Ctrl+Letter和Ctrl+Shift+Letter)。这是一个已知的痛点,也是关于vim#u dev和#vim IRC频道的各种讨论的主题

一些人(最重要的是Paul LeoNerd Evans)希望解决这一问题(即使是支持这一点的终端中的console Vim),并提出了各种建议,cp

但到今天为止,还没有补丁或志愿者发布,尽管许多人表示希望在未来的Vim 8主要版本中发布这些补丁或志愿者。

找到了一个: