読者です 読者をやめる 読者になる 読者になる

沖の雑記帳

基本的には趣味に絡んで雑多な内容を色々と

Vimxlsというものを入れてみた

はてなをうろついてたら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の部分はバージョンによって異なる