調子に乗ってi_CTRL-N, i_CTRL-Pもリマップした

これは元々IntelliJが持っている機能(Cyclic Expand Word/Cyclic Expand Word(Backward))なのだけれど,IdeaVIMでリマップするとimap相当のことができるので,あえてこっちで設定することにした。
これが,そのパッチ。

Index: src/com/maddyhome/idea/vim/key/RegisterActions.java
===================================================================
--- src/com/maddyhome/idea/vim/key/RegisterActions.java	(revision 17)
+++ src/com/maddyhome/idea/vim/key/RegisterActions.java	(revision 17)
@@ -174,6 +174,11 @@
         parser.registerAction(KeyParser.MAPPING_INSERT, "VimShiftRightLines", Command.INSERT, Command.FLAG_SAVE_STROKE,
             new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_T, KeyEvent.CTRL_MASK)));
 
+        parser.registerAction(KeyParser.MAPPING_INSERT, "HippieBackwardCompletion", Command.INSERT, Command.FLAG_CLEAR_STROKES,
+                new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)));
+        parser.registerAction(KeyParser.MAPPING_INSERT, "HippieCompletion", Command.INSERT, Command.FLAG_CLEAR_STROKES,
+                new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_P, KeyEvent.CTRL_MASK)));
+
         // ************************* Visual Mode Actions **********************
         parser.registerAction(KeyParser.MAPPING_VISUAL, "VimAutoIndentVisual", Command.CHANGE, Command.FLAG_MOT_LINEWISE | Command.FLAG_FORCE_LINEWISE,
             new Shortcut('='));


気がついたら,.vimrcをいじる気分でRegisterActions.javaをいじっているオレガイル。:-)


あとは,Ctrl-NとCtrl-PをIdeaVIMに明け渡してあげないといけないので,Settings->Keymapでその設定を行う。
#Settings -> Keymap -> Plug-ins -> IdeaVIM -> Keys


Ctrl-Pは元々"Parameter info(within method call arguments)"とわりかしよく使うコマンドが割り当てられているんで,ALT-Pに代替させといた。


ps.
言うまでもなく,すごい便利だ。:-D