我发布这个问题很大程度上是为了提供我已经到达的答案(因为我在其他地方没有找到任何其他网上信息,并且看到没有问题要问怎么做),希望能为未来的LightTable vim用户节省一点时间。但我也想知道人们发现的任何其他解决方案,或者一般的vim LightTable问题。如何在LightTable的Vim中更改默认ESC以退出插入模式?
我已经爱上了LightTable,但是在我甚至考虑IDE之前,至少需要最低限度的vim支持。 LightTable有。然而,目前,你基本上都停留在默认的vim选项下,并且很少能够改变配置。我非常有兴趣听到这方面的未来计划(你在克里斯?)。在本地配置目录中公开一个.vimrc,即使功能受到很大限制,也是非常棒的,但是我意识到它很早就在开发中,很大程度上取决于CodeMirror能够提供什么。
我不能容忍的一件事是必须发送我的小指向上,并在左侧按ESC键退出插入模式。这太慢了,需要你的左手指离开主排,这从来都不好。我通常在vim中处理的方式是将ii映射到.vimrc中退出插入模式。默认情况下,另一个替代方法是按CTRL- [。这更好,但对我来说,这是进入emacs chording领域,由于某种原因,我右小指的手指几乎总是碰到任何一个支架键。
这是一个破解,但它是一个容忍的解决方法,直到更好的vim支持出现在LightTable/CodeMirror中。我只在最新的LightTable(0.4.9)上进行了测试,所以我不确定它适用于较早的版本(反正你可能不应该这么做),或者就此而言,会出现。
有一个名为“Vim:toggle vim mode”的命令选项。这可以在编辑器(或instalpl)中打开和关闭vim。您可以通过“设置:更改密钥绑定/快捷方式”命令将此命令绑定到热键组合。这将打开一个新标签,您可以在其中输入新的密钥绑定。当前的键绑定显示在右侧。
我使用SHIFT-i,在上下文中:editor.keys.normal。 (这意味着我不能直接在文本中使用大写字母“I”,但在实际编辑程序时 - 尤其是clojure - 这几乎不会导致问题,如果是这样,您可以使用小写字母i然后返回做一个替换字符。)这实际上使“II”(SHIFT-i SHIFT-i)退出插入模式的方式。第一个SHIFT-i退出vim并将你置于正常的所见即所得编辑器中。下一个SHIFT-i会让你回到vim,但是在命令模式下。瞧!你已经从vim插入模式转到vim命令模式。
希望这可以帮助其他LightTable vim用户。
直到今天,LightTable已半不可用...现在都是固定的!它甚至似乎与'jj'一起工作!非常感谢:) – Cotten
不错,很高兴听到!该插件现在使用来自CodeMirror的更新版本的vim.js,并且我的用于设置上述Vim选项的补丁已被接受,但他们还没有正式发布插件更新,但我已更新了要反映的答案。 – JobJob
由于性能原因请小心,只有j,k,i可以一起用于退出插入模式。如果你想要不同的密钥,你必须在这里添加它们:[vim.js#L4760](https://github.com/LightTable/Vim/blob/128269ac2898935d469cbc7fe5e4434615def738/vim.js#L4760)例如,我使用呃(dvorak) 。我花了一段时间才弄清楚这一点。 – noob