調子に乗って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