繁体   English   中英

在Windows上映射Vim中的alt键

[英]Mapping alt keys in Vim on Windows

我有一个函数,我想在Windows上的gVim中映射到Alt + o (在Win7-x64上7.3.46 32位Bram @KIBAALE Big版本)并且它......不起作用。

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

nnoremap <A-o> :call SplitRelatedFile()<CR>

然后我启动gVim,加载一个文件,点击Alt + o并发出一声哔哔声。 我尝试在映射中使用大写字母O,我尝试了gVim中的移位和不移位,它只是不起作用,我只是发出哔哔声。 (我也试过<Mo> 。)

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

当我查看输出:map无论如何我都没有将alt键列为alt键,大概是由于第8位解释过了一些东西。 不过我看到的是......

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

在我手动运行:nnoremap中的:nnoremap ,我看到了这一点(如果这篇帖子有任何字符翻译问题,第一行显示i-umlaut为关键字):

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

所以似乎第8位在Vim(GUI)启动的不同点被不同地解释了? 值得一提的是,当我运行时:map在控制台中:map Vim我也得到了i-umlaut而不是<ef>行( o是0x6F,如果设置了高位,那么将是0xEF,所以这是完全正确的; i-umlaut似乎是0x8B)。

我尝试了一些不同的Alt键组合,但没有一个能够存活到gVim中,所以我很好奇是否有人有任何提示。 也许我可以把它们以某种方式填入某种“延迟加载”模块,比如本地插件或其他东西?

我可以离开Alt键,但我没有功能键,也不想踩踏明显的Ctrl键来实现这个功能...我刚发现我可以用Ctrl +的结果替换<Ao> vAlt + o ,这确实有效(因为我在我的vimrc中得到了i-umlaut),但那不是很好! 对这种疯狂的任何想法? (哦,这对于控制台Vim不起作用,我需要保留Alt版本,当has("gui")返回false时。)

我现在已经注意到gVim和控制台Vim都将i-umlaut报告为0xEF所以...我不知道我需要做些什么来使这个更少的kludgey。 请帮帮我!

谢谢你的建议。

映射(特别是与第8位设置的Alt组合)容易受到'encoding' ,并且在以后修改它时可能会中断。

作为一般规则,如果你想:set encoding=... ,它应该是.vimrc文件中的第一件事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM