我最近已经进入了vim(再次),我现在在我的.vimrc
文件中有大量的自定义.我认识到,并非一切都在那里才有意义在IDEA插件的情况下,但我真的很喜欢它,如果事情像重新映射jj
到Esc
被拾起和荣幸.有没有办法做到这一点?无需在IDEA的键盘映射中手动调整所有内容,即.
谢谢.
jby*_*ler 160
更新的答案:IdeaVim版本0.35(2014-05-15发布)从中读取设置和键绑定~/.ideavimrc
.source ~/.vimrc
如果要包含映射,可以放入该文件~/.vimrc
.
0.33和0.34 ~/.vimrc
直接读取.
0.33(2014-04-28发布)是第一个实现VIM-288的版本,包括映射jj到的ESC.它工作得很好,IDEA首选项中有一个新的Vim Emulation部分列出了~/.vimrc
映射和Intellij映射之间的所有冲突,并允许您通过将键分配给IDEA或IdeaVim来解决冲突.这是twitter上的发布公告.
(注意:我不是作者,只是一个满意的用户.)
ars*_*vis 24
更新:是的!见下面的答案.
简答:不.
我一直在尝试这样做,特别是因为我已经.vimrc
习惯了多年来相当复杂.
无论如何,有一种解决方法(有点).IdeaVim设置存储在主文件夹内vim.xml
的.IntelliJIdea10/config/keymaps
文件夹中调用的文件中(C:\Users\<user_name>
在Windows上).您可以编辑XML以添加所需的内容.例如,我添加了以下行来通过命中F2
而不是键入来保存文件:w!
:
<action id="SaveAll">
<keyboard-shortcut first-keystroke="F2"/>
</action>
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到我们如何添加函数或vim设置(这是我通常使用的.vimrc
).
PS这可以解释为什么不使用.vimrc(强调我的):
对于好奇的人来说,插件的编写时没有任何VIM源代码的引用(正则表达式处理除外).我基本上使用优秀的VIM文档和VIM本身作为参考来验证正确的行为.
资料来源:http://ideavim.sourceforge.net/
它看起来是IdeaVIM问题#VIM-288(编辑,更新:参见jbyler的回答,VIM-288现已修复)将解决您的问题.我也在寻找一种方法来使用'jk'退出插入模式而不是使用Escape键.我不是IntelliJ插件的专家,但我设法修改了IdeaVIM源代码,以便'jk'快捷方式在那里被硬编码.我所要做的就是重新部署插件并使用它而不是官方版本.我是这样做的:
抓住IdeaVIM源代码.
您可以按照该页面上"开发"下的说明设置插件的开发环境.
现在您的IdeaVIM项目全部设置完毕,打开此文件:com.maddyhome.idea.vim.key.RegisterActions.java
看来这个文件具有所有Visual/Insert/Normal模式命令及其相应的键绑定.对于我更改"退出插入模式"键绑定的示例,请查找"VimInsertExitMode".您需要为此新快捷方式的代码块添加一行.
以下是我编辑代码后的代码部分:
parser.registerAction(KeyParser.MAPPING_INSERT, "VimInsertExitMode", Command.Type.INSERT, new Shortcut[]{ new Shortcut(KeyStroke.getKeyStroke('[', KeyEvent.CTRL_MASK)), new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK)), new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)), new Shortcut("jk"), new Shortcut(new KeyStroke[]{KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SLASH, KeyEvent.CTRL_MASK), KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)}) });
现在部署项目(制作一个.jar)并将其添加到你的插件文件夹中; 我按照这些说明参考:
您可能需要从keymaps文件夹中保存Vim.xml文件,我不确定.我删除了我的,然后当我重新启动IntelliJ时它被重新制作.
给它一个旋转!现在应该可以使用'jk'作为退出插入模式快捷键!
根据插件存储库(https://github.com/JetBrains/ideavim)中的描述,您可以通过创建文件“ 〜/ .ideavimrc ”及其内容来实现此目的:
source ~/.vimrc
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25036 次 |
最近记录: |