IdeaVIMで使えるVimオプションの一覧
思うところあって,最近IdeaVIMのソースの読んでいるのだけれど,結構知らなかった機能が見つかったりして,なかなか面白い。
つーか,3年以上使ってるのに,特定の機能しか使ってなかったんだなぁ。>IdeaVIM
知らなかった機能。そのイチが起動オプション−−っていうの?IdeaVIMも $HOME/_vimrc(または,.vimrc)があれば読み込んで,初期オプションを自動設定していたようだ。
設定できるオプションとデフォルト値は以下の通り。
digraph | false |
gdefault | gd |
history | 20 |
hlsearch | false |
ignorecase | false |
matchpairs | (:),{:},[:] |
more | true |
nrformats | octal,hex |
scroll | 0 |
scrolljump | 1 |
scrolloff | 0 |
selection | inclusive |
showmode | false |
sidescroll | 0 |
sidescrolloff | 0 |
smartcase | false |
undolevels | 1000 |
visualbell | false |
wrapscan | true |
hlsearchとselectionがあるって知って軽くショック。しかも,なんでデフォルトで"hlsearch=false, selection=inclusive"とかするかなぁ。ずーっとVisual Modeに不満があった,あの年月はなんだったんだ。orz
腹立たしいので,"hlsearch=true, selection=exclusive"と書き換えちゃる。:-)
ps.
incsearchオプションはコメントアウトされたままだった。開発止まって1年ちかくなるけど,実装する気あるんだろうか?
RegisterActionsを覗く
RegisterActions(com.maddyhome.idea.vim.keyパッケージ)とは,IdeaVIMの全コマンドの登録を司っているクラス。ここのソース読むと,IdeaVIMがサポートしているVimコマンドとキーバインドが一目瞭然なのだ。
そこで気付いたのが,矩形選択(blockwise-operators)をサポートしていたってこと(Ctrl+Q or Ctrl+V)。
まあ,矩形選択なんて滅多に使わないから,使うときはIdeaVIMを切ってIDEAのColumn Modeを利用していたんだけど,これも無駄な手間だったわけね。
ただ,キーバインドが,Ctrl+QかCtrl+Vというビミョーな設定だったため気付きづらかったってのもあるか(Vimでも滅多に使わないし)。
と思ったら,K (Run a program to lookup the keyword under the cursor.)に 'Quick Documentation Lookup'をリマップしてやがった。やるな,IdeaVIM。:-)
この 'Quick Documentation Lookup'みたいに,IDEA本来の機能に横流しするだけっちゅうのもあったり,なかなか面白かった。> RegisterActions
IdeaVIMのJoin LinesをIDEAのソレ(Smart Join)に差し替える
ここ書き換えればOK。
public class DeleteJoinLinesSpacesHandler extends ChangeEditorActionHandler { public boolean execute(Editor editor, DataPackage context, int count, int rawCount, Argument argument) { if (editor.isOneLineMode()) { return false; } // ↓ この1行をコメントアウトして, // return CommandGroups.getInstance().getChange().deleteJoinLines(editor, context, count, true); // ↓ この2行を追加する KeyHandler.executeAction("EditorJoinLines", context); return true; } }
IdeaVIMよりIDEAのJoin Linesのほうが性能がよいので,満足じゃ。