这个问题让我真的很疯狂。我过去在Windows 7下使用过Gvim和Autohotkey。出于各种原因,我将CTRL + D映射到表现为Enter。这到目前为止运作良好。 在Gvim中,我将Enter / Return映射为向下翻页键:
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作为我的日常编辑器,所以我对此感到非常生气,因为我不明白为什么在正常模式下会出现此问题。谁知道那里发生了什么?我非常感谢你的帮助,因为这让我非常疯狂。
答案 0 :(得分:1)
我没有得到修复。所以我决定以另一种方式破解它。
这是我的自动键脚本
winTitle = window.get_active_title()
if 'VIM' in winTitle:
output = "<f8>"
keyboard.send_key(output)
else:
output = "<PageDown>"
keyboard.send_key(output)
你知道,如果我有VIM窗口,CTRL + D会将F8发送给Vim。
我在Vim中映射了这样的F8:
map <f8> <CR>
nnoremap <CR> <PageDown>
它有效,但不是按照它的意图。但似乎我别无选择。感谢Zyx和romainl的帮助,非常感谢!