我有一个函数,我想在 Windows 上的 gVim 中映射到Alt+ o(Win7-x64 上的 7.3.46 32 位 Bram@KIBAALE 大版本),它......不工作。
我的 .vimrc 有一行内容:
nnoremap <A-o> :call SplitRelatedFile()<CR>
然后我启动 gVim,加载文件,点击Alt+o并听到哔声。我尝试在映射中使用大写 O,我尝试在 gVim 中使用和不使用 shift,但它不起作用,我只是听到哔哔声。(我也试过<M-o>
。)
如果我在终端中加载 Vim,它会按预期工作。如果我在新的 gVim 实例中手动执行上述行,它也可以按预期工作。只有当它出现在 .vimrc 中时它才不起作用。实际上,它出现在另一个文件中,但我的 _vimrc 只有一行读取source x:/path/to/my.vimrc
.
当我查看输出时,:map
无论如何我都没有将 alt 键列为 alt 键,大概是由于第 8 位解释交叉了一些东西。然而我看到的是……
n <ef> * :call SplitRelatedFile()<CR>
在我手动运行:nnoremap
gVim 之后,我看到了这个(如果这篇文章有任何字符翻译问题,第一行显示 i-umlaut 作为键):
n ï * :call SplitRelatedFile()<CR>
n <ef> * :call SplitRelatedFile()<CR>
所以似乎第 8 位在 Vim (GUI) 启动的不同点得到不同的解释?对于它的价值,当我:map
在控制台 Vim 中运行时,我也得到了 i-umlaut 而不是<ef>
行 (o
在 ASCII 中是 0x6F 所以如果设置了高位就会是 0xEF ,所以这很有意义;i-umlaut 似乎为 0x8B)。
我尝试了一些不同的Alt组合键,但没有一个能在 gVim 中幸存下来,所以我很好奇是否有人有任何提示。也许我可以以某种方式将它们塞入某种“延迟加载”模块中,例如本地插件或其他东西?
我可以远离Alt键,但我没有功能键,不想踩踏Ctrl这个功能的明显键......我刚刚发现我可以用+ ,+<A-o>
的结果替换,这确实有效(当我在我的 vimrc 中得到 i-umlaut 时)但这不是很好!对这种疯狂有什么想法吗?(哦,这对控制台 Vim 不起作用,我需要保留返回 false时的版本。)CtrlvAltoAlthas("gui")
我现在注意到 gVim 和控制台 Vim 都将 i-umlaut 报告为 0xEF 所以......我不知道我需要做些什么来减少它的混乱。请帮帮我!
感谢您的任何建议。