我发布这个问题主要是为了提供我已经得到的答案(因为我在网上其他地方没有找到任何东西,也没有看到任何问题询问如何做到这一点),希望为未来的 LightTable vim 用户节省一点时间。但我也想听听人们针对这个问题找到的任何其他解决方案,或者一般来说是 vim LightTable 问题。
我已经爱上了 LightTable,但在我考虑使用 IDE 之前,至少需要最少的 vim 支持。LightTable 有。不过,目前,您主要受制于默认的 vim 选项,并且几乎无法更改配置。我很想知道这个领域的未来计划是什么(你在外面吗,克里斯?)。在本地配置目录中公开 .vimrc ,即使功能非常有限,也非常棒,但我意识到它还处于开发初期,很大程度上取决于 CodeMirror 可以提供什么。
我不能容忍的一件事是必须将我的小指向上和向左发送以按下 ESC 键以退出插入模式。这太慢了,需要你的左手指离开主行,这从来都不好。我通常在 vim 中处理这个问题的方式是映射 ii 以退出 .vimrc 中的插入模式。默认情况下的另一种选择是按 CTRL-[。这更好,但对我来说,这正在进入 emacs 和弦领域,并且由于某种原因,我的右手小指几乎总是在敲击任一方括号键时出现颤抖。
这有点小技巧,但在 LightTable/CodeMirror 提供更好的 vim 支持之前,这是一个可以容忍的解决方法。我只在最新的 LightTable (0.4.9) 上测试过它,所以我不确定它是否适用于早期版本(你可能不应该在任何情况下使用),或者,就此而言,更高版本会来的。
有一个名为“Vim:切换 vim 模式”的命令选项。这会在编辑器(或 instarepl)中打开和关闭 vim。您可以通过“设置:更改键绑定/快捷方式”命令将此命令绑定到热键组合。这将打开一个新选项卡,您可以在其中在左侧输入新的键绑定。当前的键绑定显示在右侧。
我在 :editor.keys.normal 的上下文中使用 SHIFT-i。(这意味着我不能在文本中直接使用大写的“I”,但在程序编辑的实际实践中——尤其是 clojure——这几乎不会导致问题,如果出现问题,你可以使用小写的 i 然后返回up 并执行替换字符。)这有效地使“II”(SHIFT-i SHIFT-i)成为退出插入模式的手段。第一个 SHIFT-i 退出 vim 并让您进入正常的 WYSIWYG 编辑器。下一个 SHIFT-i 让您回到 vim,但处于命令模式。瞧!您已经从 vim 插入模式转到 vim 命令模式。
希望这可以帮助其他 LightTable vim 用户。