在Windows上映射Vim中的Alt键

我有一个函数,我想映射到Alt + oWindows上的gVim(7.3.46 32位Bram @ KIBAALE在Win7-x64的大版本),它不工作。

我的.vimrc有一行,内容如下:

nnoremap <Ao> :call SplitRelatedFile()<CR> 

然后我启动gVim,加载一个文件, 按Alt + o并发出一声嘟嘟声。 我在映射中尝试了一个大写字母O,我尝试了在gVim中没有移位的情况,它只是不工作,我只是听到哔哔声。 (我也试过了<Mo> 。)

如果我在terminal中加载Vim,它会按预期工作。 如果我在gVim的一个新实例中手动执行上面的行,它也可以按预期工作。 当它出现在.vimrc中时,它只是不起作用。 实际上,它出现在另一个文件中,但是我的_vimrc只有一行读取source x:/path/to/my.vimrc

当我查看:map的输出时,无论如何,我都不会将alt键列为alt键,这可能是由于第8位解释过了一些东西。 但是我所看到的是…

 n <ef> * :call SplitRelatedFile()<CR> 

并且在手动运行gVim中的:nnoremap ,我看到了这一点(如果在这篇文章中有任何字符转换问题,第一行显示的是变音符号):

 n ï * :call SplitRelatedFile()<CR> n <ef> * :call SplitRelatedFile()<CR> 

所以看起来Vim(GUI)初创公司的第8位在不同的地方有不同的解释。 对于什么是值得的,当我运行:map在控制台Vim中的:map我也得到了我的元音变音,而不是<ef>行( o是0x6F在ASCII中,所以如果设置高位是0xEF,所以这是非常有意义的;我的元音变音似乎是0x8B)。

我已经尝试了几个不同的Alt键组合,他们都没有生存到gVim,所以我很好奇,如果任何人有任何提示。 也许我可以将这些东西填入某种“延迟加载”模块,比如本地插件或其他东西?

我可以离开Alt键,但我没有function键,不希望跺脚在这个function明显的Ctrl键…我只是发现,我可以用Ctrl + vAlt + o ,这确实有效(因为我得到了我的vimrc中的变音符号),但这不是很好! 对这个疯狂的任何想法? (哦,这不适用于控制台Vim,我需要保持Alt版本has("gui")返回false时。

我现在已经注意到,gVim和控制台Vim报告我的变音符号为0xEF所以…我不知道我需要做什么,以减lesskludgey。 请帮帮我!

感谢您的任何build议。

映射(尤其是第八位设置为Alt的组合)容易受到'encoding' ,并且在稍后对其进行修改时可能会中断。

一般来说,如果你想要:set encoding=... ,它应该是你的.vimrc文件中的第一个东西。