2012-09-05 149 views
2

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

nmap 1 Dj 

对数字键盘1不起作用?

有没有解决这个问题的方法(不是真的是“问题”,而是烦人)

回答

1

这为我工作在Windows上:nmap <C-k5> :tabnew<CR>

键盘标识符是K1,K2等也kPlus等。据我所知,当NumLock关闭时映射失败。

+0

似乎不起作用。 – Rook

+0

@ldigas真的吗?在这里工作很好。 Vim 7.3在Windows 7 x64上运行。但就像我说的,如果NumLock关闭,映射将无法工作。 – kprobst

+0

@ldigas这个评论可能看起来很愚蠢,但是你上面的评论不清楚:你尝试过''还是''?首先需要按下Ctrl键。 – xaizek

1

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

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

:map 

然后键入Ctlv,它将使用^[开启转义序列。然后在键盘上按。结果代码看起来像^[Ow。完成你的映射为正常:

:map ^[Ow Dj 
+0

:映射,然后Ctrl-v(这给我只是^),然后按1不会给我任何东西。 – Rook

+0

@ldigas是你的NumLock开启还是关闭? –

+0

上。当它关闭时,它给出(或 - 取决于密钥)。这是预期的。 – Rook

0

您可以在vi地图(~/.vimrc例如)在下列方式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> 

此设置是使用数字键,因为他们的例子应该。当然你可以改变映射。