はてなをうろついてたらVimxlsというものがあるのを知った*1
Vimmerとしては使ってみたい。
ということで早速入れてみたんだけおキーバインドがいくつか微妙な気がしていじりたいと思ったけど.vimrcのようなものがある感じはしない…
で、色々と探してみた結果最終的には他に変更の仕方が見当たらなかったのでやや強引だが
リボンから開発→Visual Basicを選択
プロジェクトエクスプローラから"VBAProject (VimExcel_1.0.0.xla)*2を開く
標準モジュールの"VimExcel"を開く
Sub changeVim()以下の変更したいKeyAssignを探す
変更したい内容に書き換える
という手段を取ってみた。
画像がアップできないのでとりあえず文章だけ。
さらに、これだけだとVim modeから抜けた際に元から定義してあるキーじゃないと元に戻らない
今度は標準モジュールから"AllKeyAssign"を開いて
Function AllKeyAssign_dummy()を編集
追加したキーを他の記法にならって追加
同様に
Function AllKeyAssign_reset()を編集
上記と同様に追加
今回編集したのは下記
Sheetの切替のv/Vがいまいちピンと来なかったので適当に切り替えてみた。
VimExcel
Sub changeVim() '(略) 'Application.OnKey "v", "activateNext" 'Activate Next sheet 'Application.OnKey "+v", "activatePrevious" 'Activate Previous sheet Application.OnKey " ", "activateNext" 'Activate Next sheet Application.OnKey "+ ", "activatePrevious" 'Activate Previous sheet '(略) End Sub
AllKeyAssign
Function AllKeyAssign_dummy() Application.OnKey "a", "dummy" Application.OnKey "b", "dummy" '(略) Application.OnKey " ", "dummy" Application.OnKey "+ ", "dummy" End Function Function AllKeyAssign_reset() Application.OnKey "a" Application.OnKey "b" '(略) Application.OnKey " " Application.OnKey "+ " End Function
Sheetの切替をspace/Shift+spaceに切り替えてみただけです。
でも、これだと'?'で表示されるダイアログは変わらないんだよなぁ
と思ったらこれフォームにベタ書きしてるじゃないのよ。
うーん…もっと良い方法知ってる方いません?
あとすこし追記
KeyAssignに追加する場合
文字やキー(Spaceは' 'だけど他はわかってない)そのものは" "とかそのまま書けば良い。
Shift+文字にしたい場合は、"+(文字)"のように'+'をつけてやるとShift+(文字)になる。
Ctrl+文字にしたい場合は、"^(文字)"のように'^'をつけてやるとCtrl+(文字)になる。
*1:<Vim, Excel> Vimxlsを入れてみた。 - ねこゆきのメモ
*2:1.0.0の部分はバージョンによって異なる