我希望Ctrl-[可以在 Visual Studio 中的 VsVim 和 gVim 中工作,即退出插入模式,这两个功能都适用于我的 Windows XP 和 Windows 8 Pro 虚拟机,运行于 OS X Lion 上的 Parallels 9。我真的不知道为什么该按键序列似乎在两个 Windows 操作系统下都不起作用。
Ctrl-C在 gVim 中有效,但我并不关心该键序列作为替代方案(特别是因为它在 Visual Studio 中具有其他语义)。我没有vimrc
在 Windows 上进行设置,因此没有键映射,并且确实在运行:map
,并且该键序列(由于尖括号,我无法在此处输入?)报告“未找到映射”。我与 VsVim 的作者(他非常乐于助人)进行了交流,但到目前为止毫无进展这里。我认为这是我的系统出了问题,因为 gVim 中也会出现这种情况。在 Emacs 中,按键顺序对我来说效果很好,在 OS X 和 Windows 上,我都将 viper 配置设置为 map Ctrl- [to viper escape。因此物理键盘工作正常。谷歌搜索了很多次,但仍然没有找到解决方案。
关于如何了解为什么会发生这种情况,或者更好的是,如何解决此问题,有什么想法吗?例如,如果某些东西正在系统范围内(或应用程序范围内?)消耗Ctrl- [chord,我该如何找到它?我对此真的很困惑,因为我不是 Windows 专家或 Parallels 专家(尽管,正如我所说,我已经在 Google 上搜索了相当多的内容,着眼于 Windows 和 Parallels)。
答案1
背景
Esc(退出键)退出“插入”模式和“可视”模式等模式,并使 gVim 返回“正常”模式。Ctrl-[ 也具有此功能,Esc 和 Ctrl-[ 在 gVim 中执行相同的功能。
不幸的是,正如 OP 提到的,在运行 Windows 的 Parallels 虚拟机中按 gVim 中的 Ctrl-[ 不会让 gVim 像预期的那样退出并返回“正常”模式。但幸运的是,按 Esc 确实可以让 gVim 退出并返回“正常”模式。
解决方案
您可以通过创建从 Ctrl-[ 到 Esc 的快捷方式来解决此问题。
创建必要快捷方式的步骤:
- 打开 Parallels Desktop。
- 转到:Parallels Desktop 菜单 -> 首选项 -> 快捷方式选项卡 -> [您的虚拟机](在“虚拟机”标题下)。
- 单击“+”按钮添加快捷方式。
- 在“发件人”部分的文本框中,按[钥匙。
- 单击“发件人”部分中的“^ Ctrl”按钮。
- 点击“收件人”部分的文本框,然后按Esc键键。这应该会使“Esc”字样出现在文本框中。
- 单击“确定”按钮。