2012-05-21 76 views
2

我的键盘布局(第2行):如何在vim中映射{Ctrl 0, - ,=}键?

` ...... -=Backspace键

我要地图函数调用按Ctrl +-=

这是我创建的功能:

" 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 

我怎么能映射函数调用这些密钥?

回答

7

通知如何在命令行模式,Ctrl键 - _导致^_,但Ctrl键 - 和Ctrl键 - =产量无关。

由于该键盘输入是内部处理,区分这个问题,以及许多其他的组合键(如按Ctrl +按Ctrl ++)不幸的是ISN的方式今天甚至在GVIM都不可能。这是一个已知的痛点,并且是关于vim_dev和#vim IRC频道的各种讨论的主题。

有些人(最重要的是Paul LeoNerd Evans)想要解决这个问题(甚至在支持这种终端的终端上使用Vim),并且提出了各种各样的建议。 link

但截至今日,还没有补丁或志愿者尚未出面,尽管许多人表示希望在今后的Vim 8主要版本中拥有此版本。