这个问题让我真的很疯狂。过去,我在Windows 7下使用了Gvim和Autohotkey。出于各种原因,我将CTRL + D映射为像Enter一样。迄今为止,这工作得很好。 在GVIM我映射的输入/返回充当Page Down键:为什么这个关键映射在Vim中不起作用?
nnoremap <cr> <PageDown>
这工作不错。上周我决定再次尝试Ubuntu。
使用Autokey,我重新映射了我的CTRL + D以表现得像Enter一样。
keyboard.send_key("<enter>")
这在Ubuntu/Xubuntu,浏览器/ Chrome,文本编辑器,所有内容中都能正常工作。我正在使用Gnome终端。在那里,CTRL + D的行为就像Enter一样。
当我在插入模式下Vim时,CTRL + D与Enter一样。在正常模式下,我没有得到nnoremap的预期行为。
我发现这很奇怪,因为CTRL + D在VIM中在终端和插入模式下运行良好。当我按下'真实'输入。我得到了行为(在Vim中向下翻页),但在正常模式下,我没有得到与映射CTRL + D相同的行为。在插入模式下,它的行为与Enter相同。我试图改变地图,以发现问题,如:
nnoremap <return> <PageDown>
nnoremap <Enter> <PageDown>
nnoremap <cr> ij
nnoremap <CR> ij
他们没有在正常模式下使用CTRL + d工作至今。我发现奇怪的是,它在插入模式和终端中运行良好。我研究了Vim的手册,以了解一下这里发生的一些想法。没有结果。
我使用Vim作为我的日常编辑器,所以我对此感到很生气,因为我不明白为什么这个问题会在正常模式下发生。任何人都知道那里发生了什么?我真的很感谢你的帮助,因为这让我非常疯狂。
Vim在正常模式下收到了什么_is_?按':',显示什么?如果它是默认的'^ M'(或其他可映射的),则可以使用':nnoremap '来解决。 –
感谢您的回复。我在Vim的命令行输入以下内容:然后我收到一个错误:E488:尾随字符。但是我的命令中没有空格。为什么我会收到这条消息? –
@JuliusMartin尝试使用'while nr2char(getchar(1))!=“\”| echomsg字符串(getchar(1))字符串(nr2char(getchar())) end'':它应该以'code'字符''的形式回显收到的字符。虽然你在窗户上,但我也会检查':',因为你可能在某处有'mswin',并重新映射''。 –
ZyX