Visual Studio Codeのコマンドをvscodevimでキーバインドする

VS CodeにGoのプラグインを追加するとテストの実行を支援してくれる機能が色々入ります。カーソルがあたってるテストケースを実行したり、テストファイルとテスト対象ファイルを切り替えたり。例えば、コマンドパレットで Go Test Function At Cursor というコマンドを実行すると、カーソルがあたってるテストケースを実行できます。

code.visualstudio.com

でも、コマンドパレット開いて入力するの面倒くさい!もっと気軽に実行したい!!

というわけで、できるようにしてみます。


VS Codeのショートカットの設定をしてもいいのだけど、vscodevimを使ってるのでそちらでキーバインディングの設定をしたい。コマンドパレットを開いて Go Test Function At Cursor を実行する代わりに、 \gt と入力するだけで実行できるようにする。

以下のメニューを開く。

f:id:bati11:20180929100404p:plain

vscodevimのキーバインドで必要なコマンドID?を以下のように「Copy Command」で取得する。

f:id:bati11:20180929101119p:plain

setting.jsonに以下を記述。

    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["<leader>", "g", "t"],
            "after": [],
            "commands": [
                "go.test.cursor" // 「Copy Command」で取得したコマンドID
            ]
        },
    ]

これでコマンドパレットを使わずに、 \gt と入力するだけでカーソルがあたってるテストケースを実行することができた!直前に実行テストを実行するコマンドやテストファイルとテスト対象ファイルを切り替えるコマンドも簡単に実行できると捗りそうですね!