こんにちは!日々のコーディング、本当にお疲れ様です。
ふと自分の手元を見つめ直したとき、「あ、また同じキーボードの組み合わせを何回も押してるな……」と気づく瞬間はありませんか?例えば、コードをフォーマットして、不要な空白を消して、ファイルを保存して、ターミナルを開いてテストを実行する。これらはすべて別々のコマンドですが、開発者である私たちにとっては「一連の作業」のひとまとまりですよね。
VS Codeの標準機能でもキーボードショートカットの設定はできますが、「1つのキーを押したら、複数のコマンドを上から順番に実行してほしい」という、いわゆるキーボードマクロの実現には、標準のままだと少し手が届きません。
今回は、拡張機能 `multiCommand` を使って、複数の操作をたった1つのキーに美しく集約するテクニックを解説します。これをマスターすれば、毎日の細かな指の動きが劇的に減り、フロー状態(ゾーン)を保ったままコーディングに没頭できるようになりますよ。それでは、一緒に見ていきましょう!
—
なぜ「複数の操作を1キーにまとめる」必要があるのか?
私たちがエディタに向き合うとき、最大の敵は「思考の分断」です。
「コードを書く ➔ 整形する ➔ 保存する ➔ 特定のテストを実行する」という一連のルーティンワークを、毎回バラバラのショートカットキー(あるいはマウス操作)で行っていると、それだけで脳のメモリ(ワーキングメモリ)が少しずつ消費されてしまいます。
これを1つのキーに集約(マクロ化)できれば、脳の負荷を極限まで下げることができます。
特に、「保存前の自動整形 + 特定のビルドタスクの呼び出し」や、「定型的なコードスニペットの挿入 + カーソルのジャンプ」といった複雑なワークフローを完全自動化できるようになると、開発スピードが一段階上のステージへと引き上げられます。
—
導入:Multi-Command拡張機能のセットアップ
まずは、複数のコマンドを連続実行するためのエンジンとなる拡張機能をインストールします。
1. 拡張機能のインストール
VS Codeの拡張機能ビュー(`Ctrl + Shift + X` または `Cmd + Shift + X`)を開き、以下の拡張機能を検索してインストールしてください。
- 拡張機能名: `Multi Command`
- 作者: `ryuta46`
(※類似の拡張機能がいくつかありますが、設定のシンプルさとメンテナンス性の観点から、この `ryuta46.multi-command` が最も堅牢でおすすめです)
2. なぜ `settings.json` に直接書くのか?
この拡張機能の最大の特徴は、GUIの設定画面ではなく、VS Codeの全体設定ファイルである `settings.json` に直接マクロのレシピを記述する点にあります。
「設定ファイルに書くのって難しそう……」と思われるかもしれませんが、ご安心ください。JSONというデータ構造を使うことで、「どのコマンドを、どういう順番で、どんな引数で動かすか」をエンジニアにとって最も見通しが良い形で管理できるようになります。
—
実践:ファイル保存・整形・カスタム処理を1キーに集約する
それでは、実際に手を動かして「HelloWorld」ならぬ「マイ・ファースト・マクロ」を作ってみましょう。
今回は、以下の3つの操作を1つのキー(例: `Ctrl + Shift + Alt + S`)に集約するマクロを作成します。
1. 現在のファイルをフォーマット(整形)する
2. 未保存の変更をすべてセーブする
3. 開発者用のトースト通知(画面右下にメッセージを表示)を出す
設定ファイルの記述
VS Codeの設定ファイル(`settings.json`)を開き、以下のように `multiCommand.commands` の設定を追加してください。
{
// VS Codeの標準設定(例)
“editor.tabSize”: 2,
“editor.formatOnSave”: false,
// ここから下が Multi-Command の設定ブロックです
“multiCommand.commands”: [
{
// マクロを識別するためのユニークなID(後でショートカットキーから呼び出します)
“command”: “multiCommand.formatAndSaveAndNotify”,
// 順番に実行したいコマンドの配列(上から順番に実行されます)
“sequence”: [
// 1. ドキュメント全体の整形
“editor.action.formatDocument”,
// 2. すべてのファイルを保存
“workbench.action.files.saveAll”,
// 3. ユーザーへ処理完了を知らせるためのメッセージ表示(コマンドに引数を渡す例)
{
“command”: “vscode.window.showInformationMessage”,
“args”: [“✨ マクロによる整形&保存が完了しました!”]
}
]
}
]
}
コードのポイント解説
- `command`: あなたが自由に命名できるマクロのIDです。`multiCommand.` というプレフィックス(接頭辞)を必ずつけてください。
- `sequence`: ここに記述した配列の要素が、1ミリ秒の遅延もなく上から順番に実行されます。
- `args`: VS Codeのコマンドの中には、引数を取れるものがあります。上記の3番目の例のように、オブジェクト形式で書くことでコマンドに直接データを渡すことが可能です。
—
ショートカットキーへの割り当て
作成したマクロのレシピ(ID)を、実際のキーボードショートカットに結びつけます。
キーボードショートカットの設定ファイル (`keybindings.json`) を開き、以下の設定を追加してください。
[
{
// 実行したいマクロのIDを指定(multiCommand. プレフィックスに注意)
“command”: “extension.multiCommand.execute”,
// お好みのキーコンビネーション(今回は Ctrl + Shift + Alt + S に設定)
“key”: “ctrl+shift+alt+s”,
// Macの場合はこちらを有効化(必要に応じて)
// “key”: “cmd+shift+alt+s”,
// どの言語モードやエディタ状態でこのキーを有効にするか(基本はエディタフォーカス時)
“when”: “editorTextFocus”,
// どのマクロを実行するかを「引数」として拡張機能に伝えます
“args”: {
“command”: “multiCommand.formatAndSaveAndNotify”
}
}
]
ここがエンジニアのこだわりポイント
`extension.multiCommand.execute` という「拡張機能が提供するルーター的なコマンド」に対して、`args.command` で先ほど私たちが定義したオリジナルマクロのIDを渡しています。この仕組みのおかげで、いくつでも無限に自分だけのマクロを生み出すことができます。
—
動作確認:いざ、魔法のキーを押してみよう!
設定が完了したら、適当なコードファイル(JavaScriptやPython、HTMLなど何でもOKです)をあえてインデントを崩した状態で開いてみてください。
そして、先ほど設定したショートカットキー(`Ctrl + Shift + Alt + S`)を叩きます。
【期待される挙動】
1. 画面がパッと美しいインデントに整う(`editor.action.formatDocument`)
2. ファイルタブの未保存マーク(白丸)が消える(`workbench.action.files.saveAll`)
3. 画面の右下に「✨ マクロによる整形&保存が完了しました!」という通知がポップアップする(`vscode.window.showInformationMessage`)
この一連の動作が、たった1回のキー入力で、まるで機械仕掛けの時計のようにスムーズに実行されたはずです。成功おめでとうございます!これがキーボードマクロの力です。
—
さらに実用的な応用例:開発効率を限界突破させるレシピ
基本の形が理解できたところで、実務で明日から即戦力として使える高度なマクロのレシピを2つご紹介します。コピペして `settings.json` の `multiCommand.commands` の中に配列の要素として追加してみてください。
応用例1: 「Gitコミット準備一括完了」マクロ
開発の終わりに、コードを綺麗にして、ステージング(Git add)までを自動で行うマクロです。
{
“command”: “multiCommand.prepGitCommit”,
“sequence”: [
“editor.action.formatDocument”, // 1. フォーマット
“workbench.action.files.save”, // 2. 保存
“git.stageAll” // 3. 変更された全ファイルをGitにステージ
]
}
※キーバインドには `ctrl+shift+g c` などを割り当てると便利です。
応用例2: 「デバッグ用console.log爆誕」マクロ
選択している変数名を、一瞬でコンソール出力の形にして次の行に挿入する、というようなこともマクロとスニペットの組み合わせで擬似的に実現できます。(※より高度な処理は拡張機能が必要ですが、定型操作の連続であればマクロで十分カバーできます)
—
まとめ
今回は、VS Codeの拡張機能 `Multi Command` を使ったキーボードマクロの作成術を解説しました。
- 標準機能の限界を超える: 複数のコマンドを直列に繋ぎ、1つのキーで実行できる。
- 設定の分離: `settings.json` にレシピを書き、`keybindings.json` から呼び出すことで保守性が高まる。
- 思考の分断を防ぐ: ルーティンワークを自動化し、開発への没入感(フロー状態)を高める。
たったこれだけの工夫で、あなたの開発環境はあなた専用の「超高速コックピット」へと進化します。日々のコーディングで「あ、またこの作業3回キー押してるな」と思ったら、ぜひ今回のマクロ化を思い出してください。
あなたのエンジニアライフが、より快適でクリエイティブなものになりますように。それではまた次の記事でお会いしましょう!