我有一个函数,我想映射到Alt + o在Windows上的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 + v , Alt + o ,这确实有效(因为我得到了我的vimrc中的变音符号),但这不是很好! 对这个疯狂的任何想法? (哦,这不适用于控制台Vim,我需要保持Alt版本has("gui")
返回false时。
我现在已经注意到,gVim和控制台Vim报告我的变音符号为0xEF所以…我不知道我需要做什么,以减lesskludgey。 请帮帮我!
感谢您的任何build议。
映射(尤其是第八位设置为Alt的组合)容易受到'encoding'
,并且在稍后对其进行修改时可能会中断。
一般来说,如果你想要:set encoding=...
,它应该是你的.vimrc
文件中的第一个东西。