3

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

`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

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

4

2 回答 2

7

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

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

一些人(最重要的是 Paul LeoNerd Evans)想要解决这个问题(即使是支持这个的终端中的控制台 Vim),并提出了各种建议,cp。关联

但是截至今天,还没有补丁或志愿者出现,尽管许多人表示希望在未来的 Vim 8 主要版本中拥有它。

于 2012-05-21T06:31:10.267 回答
1

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

只是只有+-……没有别名

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

是你想要的吗?

于 2012-05-21T05:00:19.237 回答