3

私のキーボードのレイアウト(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

関数呼び出しをこれらのキーにマップするにはどうすればよいですか?

4

2 に答える 2

7

コマンド ライン モードでCtrl-を指定すると が返されますが、_-と-を指定すると何も返されないことに注意してください。^_Ctrl0Ctrl=

キーボード入力が内部で処理される方法のため、これと他の多くのキーの組み合わせ ( Ctrl+LetterCtrl+ Shift+などLetter) を区別することは、GVIM であっても、残念ながら現在は不可能です。これは既知の問題点であり、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 に答える