如何映射 vim 中的键盘(NUM)键?

如何映射 vim 中的键盘(NUM)键?

我使用的是 Ubuntu 16.04 的 2012-Dez-06 版 Vim 7.4,在 W10 上使用 PuTTY 0.67。我想映射 中的数字键盘的按键.vimrc。我尝试在 vim 中的命令行上操作,但是不起作用:

map <k1> COMMAND
map k1 COMMAND
map <C-k1> COMMAND
map <S-k1> COMMAND
map *keypad-1* COMMAND
map keypad-1 COMMAND

如果我这样做:

map 1 dd

它可以工作,并且如果我点击,该行就会被删除1

如果我在 vi 中按下数字键盘按钮123... 我得到qrst... 如果我映射q到一个命令,只有普通q按钮会执行该命令,但1数字键盘上不会执行。我的.vimrc是:

# cat ~/.vimrc
syntax on
set t_Co=256
colorscheme elflord
if &diff
    colorscheme apprentice
endif

h keycodes告诉我:


<kHome>         Anfang auf dem Ziffernblock (oben links)*keypad-home*
<kEnd>          Ende auf dem Ziffernblock (unten links) *keypad-end*
                                                        *keypad-page-up*
<kPageUp>       Bild rauf auf dem Ziffernblock (oben rechts)
                                                        *keypad-page-down*
<kPageDown>     Bild runter auf dem Ziffernblock (unten rechts)
<kPlus>         + auf dem Ziffernblock                  *keypad-plus*
<kMinus>        - auf dem Ziffernblock                  *keypad-minus*
<kMultiply>     * auf dem Ziffernblock                  *keypad-multiply*
<kDivide>       / auf dem Ziffernblock                  *keypad-divide*
<kEnter>        Enter auf dem Ziffernblock              *keypad-enter*
<kPoint>        Dezimalzeichen auf dem Ziffernblock     *keypad-point*
<k0> - <k9>     0 bis 9 auf dem Ziffernblock            *keypad-0* *keypad-9*
<S-...>         Umschalttaste                   *shift* *<S-*
<C-...>         Steuerungstaste                 *control* *ctrl* *<C-*
<M-...>         Alt-Taste oder Meta-Taste       *meta* *alt* *<M-*
<A-...>         dasselbe wie <M-...>            *<A-*
<D-...>         Befehlstaste (nur Macintosh)    *<D-*
<t_xx>          Taste mit dem Eintrag »xx« in der TermCap

因此<k1>应该是正确的。

我正在使用带有 ssh 的 Putty 和以下键盘设置:

在此处输入图片描述 如何映射数字键盘的按键?

答案1

PuTTY 的默认设置就很好。不要更改任何内容PuTTY-> Terminal -> Keyboard(见上文)或禁用PuTTY-> Terminal -> Features任何内容:

在此处输入图片描述

您可以在 vi 中按以下方式映射 NUM 键:

inoremap <Esc>Oq 1
inoremap <Esc>Or 2
inoremap <Esc>Os 3
inoremap <Esc>Ot 4
inoremap <Esc>Ou 5
inoremap <Esc>Ov 6
inoremap <Esc>Ow 7
inoremap <Esc>Ox 8
inoremap <Esc>Oy 9
inoremap <Esc>Op 0
inoremap <Esc>On .
inoremap <Esc>OQ /
inoremap <Esc>OR *
inoremap <Esc>Ol +
inoremap <Esc>OS -
inoremap <Esc>OM <Enter>

此设置是使用 NUM 键的示例。当然,您可以照常更改映射。

相关内容