多年来,我一直在使用笔记本电脑——键盘上没有数字小键盘。最近获得了一个桌面键盘……就在今天,我发现 Vim 映射到数字 (1 ... 9, 0) 不适用于它们的数字键盘等效项。我的意思是说?
nmap 1 Dj
在数字键盘 1 上不起作用?
这个问题有什么解决方案(不是真正的“问题”,而是烦人)?
多年来,我一直在使用笔记本电脑——键盘上没有数字小键盘。最近获得了一个桌面键盘……就在今天,我发现 Vim 映射到数字 (1 ... 9, 0) 不适用于它们的数字键盘等效项。我的意思是说?
nmap 1 Dj
在数字键盘 1 上不起作用?
这个问题有什么解决方案(不是真正的“问题”,而是烦人)?
这在 Windows 上适用于我:nmap <C-k5> :tabnew<CR>
键盘标识符为 k1、k2 等。还有 kPlus 等。据我所知,当 NumLock 关闭时映射失败。
我有一些键盘和终端无法通过k*
标识符进行映射。要在这种情况下映射它们,请使用Ctlv以输入正确的转义码
因此,例如要1
在键盘上执行映射Dj
,请输入:
:map
然后键入Ctlv,这将打开一个带有 的转义序列^[
。然后按1键盘上的。生成的代码将类似于^[Ow
. 正常完成映射:
:map ^[Ow Dj
我也经常使用键盘映射。为了帮助您开始计算映射,您可以查看 vim“知道”哪些键以及当前映射的内容:
:h keycodes
希望这会列出您的键盘键等。如果是这种情况,那么您可以轻松地(不必担心找出和使用它们的转义序列)重新映射它们使用map <k0> :wincmd w<CR>
例如。
多年来,我一直使用 Ctrl-v 后跟一个键来获取 XXXX 映射,直到我发现 keycodes 命令和真正有用的定义。
希望这可能会有所帮助!
~/.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 键的示例。当然,您可以更改映射。