2012-05-21 75 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主要版本中擁有此版本。