2

多年来,我一直在使用笔记本电脑——键盘上没有数字小键盘。最近获得了一个桌面键盘……就在今天,我发现 Vim 映射到数字 (1 ... 9, 0) 不适用于它们的数字键盘等效项。我的意思是说?

nmap 1 Dj

在数字键盘 1 上不起作用?

这个问题有什么解决方案(不是真正的“问题”,而是烦人)

4

4 回答 4

1

这在 Windows 上适用于我:nmap <C-k5> :tabnew<CR>

键盘标识符为 k1、k2 等。还有 kPlus 等。据我所知,当 NumLock 关闭时映射失败。

于 2012-09-05T18:12:19.750 回答
1

我有一些键盘和终端无法通过k*标识符进行映射。要在这种情况下映射它们,请使用Ctlv以输入正确的转义码

因此,例如要1在键盘上执行映射Dj,请输入:

:map 

然后键入Ctlv,这将打开一个带有 的转义序列^[。然后按1键盘上的。生成的代码将类似于^[Ow. 正常完成映射:

:map ^[Ow Dj
于 2012-09-05T18:12:21.213 回答
0

我也经常使用键盘映射。为了帮助您开始计算映射,您可以查看 vim“知道”哪些键以及当前映射的内容:

:h keycodes

希望这会列出您的键盘键等。如果是这种情况,那么您可以轻松地(不必担心找出和使用它们的转义序列)重新映射它们使用map <k0> :wincmd w<CR>例如。

多年来,我一直使用 Ctrl-v 后跟一个键来获取 XXXX 映射,直到我发现 keycodes 命令和真正有用的定义。

希望这可能会有所帮助!

于 2019-08-29T18:55:20.333 回答
0

~/.vimrc您可以通过以下方式在 vi(例如 in)中映射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 键的示例。当然,您可以更改映射。

于 2016-11-20T12:37:44.310 回答