Vim 如何在LightTable';维姆是谁?

Vim 如何在LightTable';维姆是谁?,vim,lighttable,Vim,Lighttable,我发布这个问题主要是为了提供我得到的答案(因为我在网上其他地方找不到任何问题,也看不到关于如何做的问题),希望能为未来的LightTable vim用户节省一点时间。但我也很想听听人们对这个问题的其他解决方案,或者通常的vim LightTable问题 我爱上了LeTable,但在我考虑IDE之前,至少需要一个VIM支持。LightTable有那个。不过,目前,您主要使用默认的vim选项,并且几乎无法更改配置。我很想知道这个领域的未来计划是什么(克里斯,你在吗?)。在本地配置目录中公开一个.vi

我发布这个问题主要是为了提供我得到的答案(因为我在网上其他地方找不到任何问题,也看不到关于如何做的问题),希望能为未来的LightTable vim用户节省一点时间。但我也很想听听人们对这个问题的其他解决方案,或者通常的vim LightTable问题

我爱上了LeTable,但在我考虑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,然后备份并替换字符。)这实际上使“II”成为(SHIFT-i SHIFT-i)退出插入模式的方法。第一个SHIFT-i退出vim并将您置于正常的WYSIWYG编辑器中。下一个SHIFT-i将您置于vim中,但处于命令模式。瞧!您已经从vim插入模式转到vim命令模式


希望这对其他LightTable vim用户有所帮助。

CodeMirror的API的设计方式使添加密钥绑定并不十分复杂,但添加对配置文件的支持并扩展默认密钥绑定以覆盖vim功能集的更大部分对我来说并不是一项简单的任务它甚至没有搜索/替换功能,这可能是他们待办事项列表的底部


这一点,CodeMirror是第三方“库”,LT团队可能对此没有太大影响力。

更新:我认为最新的LightTable版本支持这一点。如果将以下内容添加到他们的
用户中,请发表评论。
文件起作用(用户行为可通过命令窗格(ctrl空格)访问):


旧答案:

最新的LT插件源代码支持此功能,但尚未发布

要轻松安装,请执行以下操作:

  • 打开您的LT插件文件夹,例如在OSX
    ~/Library/Application Support/LightTable/plugins/Vim/
  • (可选)将Vim(插件)文件夹的备份保存到其他地方
  • 删除Vim文件夹
  • 下载
  • 解压它,将解压后的文件夹重命名为just Vim,然后将其移动/复制到您的LT Plugins文件夹(即,它将替换您刚刚删除的官方Vim插件)
  • 在user.behaviors文件的编辑器部分添加以下选项:
    (:lt.plugins.vim/set-options{“enableInsertModesKeys”true,
    插入模式键“jk”
    “InsertModeesKeysTimeout”200})
  • 重新启动LT,您应该能够使用jk(或在InsertModesKeys中设置的任何键)退出插入模式

  • 直到今天,LightTable还处于半不可用状态……现在已经全部修复!!它甚至似乎可以与
    jj
    一起工作!非常感谢:)很好,很高兴听到!该插件现在使用的是CodeMirror中更新版本的vim.js,我上面设置vim选项的补丁也被接受,但他们还没有正式发布插件更新,我已经更新了答案以反映。出于性能原因,请小心,只有j,k,I可以一起使用退出插入模式。如果你想要不同的钥匙,你必须把它们加在这里:比如我用的是德沃夏克,我花了一段时间才弄明白。
    [:editor :lt.plugins.vim/set-options {"enableInsertModeEscKeys" true, 
                                          "insertModeEscKeys" "jk", 
                                          "insertModeEscKeysTimeout" 200}]