VSCodeでtodo-treeやVSNotesなどのサイドバーを自動更新するショートカット

公開日:
目次

VSCodeには便利なプラグインがありますが、todo-treeやVSNotesみたいにサイドバーで使うプラグインは起動しても最新情報に更新されてないことが多く毎回手動で更新するのはめんどくさいです。

そこで今回は起動のショートカットを押したときに、同時にプラグインも更新されるようにする設定したので備忘録として残します。

普通のショートカット設定

まずは普通のショートカットの設定方法から。

VSCodeではキーボードショートカットを設定するためには設定用のjsonファイルをいじる必要があります。

下記の通り実行します。

  1. VSCodeを開いて、Cmd + Shift + P(Mac)またはCtrl + Shift + P(Windows/Linux)を押してコマンドパレットを開く。
  2. Open Keyboard Shortcuts(JSON)と入力して選択、これでキーボードショートカットを設定するkeybindings.jsonファイルが開く。
  3. このファイルに新しいショートカットを追加するためのコードを記述する。

例えば、todo-treeVSNotesを同時に更新するショートカットを設定したい場合は、こんな感じで書くといいかも。

keybidings.json
{
    "key": "ショートカットのキー",
    "command": "workbench.action.reloadWindow",
    "when": "editorTextFocus"
}

この"command": "workbench.action.reloadWindow"の部分で、VSCodeのウィンドウをリロードすることでプラグインを更新しています。"key"には好きなショートカットキーを設定してください。

起動と同時に更新する

起動と同時に更新するには、一つのキーで2種類のコマンドを実行する必要があります。

VSCodeは幸いにもマルチコマンドに対応しているので、実際にやってみましょう。

keybidings.json
{
  "key": "ショートカットキー",
  "command": "runCommands",
  "args": {
    "commands": [
      "各プラグインの起動コマンド",
      "workbench.action.reloadWindow"
    ]
  }
},

VSCodeでマルチコマンドを利用するには上記のように、"command""runCommands"を指定します。

その後に引数として"args"の中に"commands"を指定します。その中にarrayとして複数のコマンドをカンマ区切りで記載します。

起動コマンドは各プラグインによって異なるので、利用したいプラグインの起動コマンドを調べてみてください。

この記事ではtodo-treeとVSNotesのみ紹介します。

todo-treeを起動と同時に更新する

実際に下記のコードを追記するとtodo-treeの起動と同時に更新できます。

keybidings.json
{
  "key": "ショートカットキー",
  "command": "runCommands",
  "args": {
    "commands": [
      "editor.action.copyLinesDownAction",
      "workbench.action.reloadWindow"
    ]
  }
},

VSNotesを起動と同時に更新する

実際に下記のコードを追記するとtodo-treeの起動と同時に更新できます。

keybidings.json
{
  "key": "ショートカットキー",
  "command": "runCommands",
  "args": {
    "commands": [
      "editor.action.copyLinesDownAction",
      "workbench.action.reloadWindow"
    ]
  }
},

Vimの場合

VSCodeでは拡張機能を利用することで、Vimのキーバインドを使うことができます。

Vimモードを使っている場合は、setting.jsonに記述する方法で設定します。基本的にはノーマルモードで追加すると思うので、下記に手順を記載します。

  1. 同じくCmd + Shift + PCtrl + Shift + Pでコマンドパレットを開いて、Open Settings(JSON)を選択。
  2. settings.jsonが開いたら、以下のような設定を追加する。
setting.json
{
    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["<キー>"],
            "commands": [
                {
                    "command": "workbench.action.reloadWindow",
                }
            ]
        }
    ]
}

<キー>の部分には、Vimモードで使いたいキーを設定してください。これで設定したキーを押すだけで、VSCodeがリロードされて、todo-treeVSNotesも最新の情報に更新されます。

起動と同時にサイドバーを更新する。

起動と同時に更新するのは基本的に普通のショートカットと同じです。

起動用のコマンドはtodo-treeとVSNotesの場合は下記です。

  • todo-tree: ""
  • VSNotes: ""
setting.json
{
    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["<キー>"],
            "commands": [
                {
                    "command": "workbench.action.reloadWindow",
                    "command": "起動用のコマンド",
                }
            ]
        }
    ]
}

というわけで、今回はVSCodeでtodo-treeVSNotesを自動更新するマクロショートカット設定方法を紹介しました。ちょっとした設定で毎回更新を押す手間が省けるので、めんどくさいのが嫌な方はぜひ試してください!