VS Codeの「マルチカーソル」と「正規表現置換」で単純編集作業を効率化する実践技術
目次
開閉
「100行以上ある配列のフォーマットを、手作業で1行ずつ書き換えている……」
コードを書く作業の中で、単調な「テキストの整形や置換」ほどモチベーションと時間を奪うものはありません。CSVデータからJSONオブジェクトを作ったり、複数のキー名を一括でキャメルケースに変換したりする作業に、30分以上費やした苦い経験はありませんか?
今回は、Visual Studio Code (VS Code) に標準搭載されている マルチカーソル操作 と 正規表現を使ったグループ置換 をマスターし、単純作業を劇的に短縮する実践テクニックを紹介します。
動作確認環境
- Visual Studio Code: v1.90以降
- OS: macOS Sequoia / Windows 11(PowerShell 7.x)
- 公式ドキュメント: VS Code Basic Editing (Multiple selections) / Search and replace
なぜ「スクリプトを書く」より「エディタ置換」なのか?
ちょっとしたテキスト加工が必要になった際、Pythonスクリプトを書くのも一つの手です。しかし、「スクリプトを作成して、実行して、結果を確認して、ファイルを消す」という手順を踏むと、短くても5分〜10分程度はかかってしまいます。
VS Codeの正規表現置換やマルチカーソルを使えば、エディタ上でわずか 10秒〜20秒 で安全に変換を完了させることができます。
作業スピード比較
graph TD
A["大量テキストの加工タスク発生"] --> B{"手法の選択"}
B -- "手動コピペ (非効率)" --> C["1行ずつ修正 (所要時間: 30分)"]
B -- "スクリプト作成" --> D["Pythonスクリプト作成 (所要時間: 8分)"]
B -- "VS Code置換" --> E["マルチカーソル/正規表現 (所要時間: 15秒)"]
C --> F["集中力の低下・タイポの混入"]
D --> G["動作確認のオーバーヘッド"]
E --> H["開発リズムを崩さず即復帰"]実戦1:マルチカーソルを自在に操るショートカット
マルチカーソルとは、エディタ上に複数の入力カーソルを同時に配置し、一括で入力・削除を行う機能です。
現場で即戦力になる主要ショートカット5選
| ショートカット (Win/Mac) | 機能・用途 |
|---|---|
Ctrl + Alt + Down/Up (Cmd + Option + Down/Up) | 垂直方向にカーソルを上下へ追加拡張する |
Ctrl + D (Cmd + D) | 選択中の単語と同じ単語を、押すたびに次々と選択追加する |
Ctrl + Shift + L (Cmd + Shift + L) | ドキュメント内の同じ単語すべてを一括選択してカーソルを立てる |
Shift + Alt + I (Shift + Option + I) | 複数行を選択した状態で、各行の末尾に一括でカーソルを配置する |
Alt + Click (Option + Click) | 任意の離れた場所へ自由にカーソルを個別に立てる |
現場目線のTips(Windowsでのキー衝突に注意) Windows環境では、GPUドライバや他社ツールの設定によって
Ctrl + Alt + 矢印キーが「画面回転のホットキー」として奪われてしまう現象が古くからあります。 もし画面が回転してしまったり機能しない場合は、複数行を通常選択してからShift + Alt + Iで行末にカーソルを立てるか、VS Codeのキーボードショートカット設定(Ctrl + K Ctrl + S)で好みの組み合わせに変更するのがおすすめです。
活用例:プレーンなリストをJavaScriptの配列へ一瞬で変換
以下のようなプレーンな単語リストがあるとします。
apple
banana
cherry
dragonfruit
- リスト全体を選択し、
Ctrl + Shift + LまたはCtrl + Alt + Downで全行にカーソルを設置。 Homeキーを押して行頭へ移動し、"を入力。Endキーを押して行末へ移動し、",を入力。
わずか3行のキー操作で、一瞬にして以下のコードが完成します。
"apple",
"banana",
"cherry",
"dragonfruit",実戦2:正規表現置換によるグループ(キャプチャ)変換
さらに高度な構造変更を行う場合、検索・置換パネル(Ctrl + H / Cmd + Option + F)の 正規表現モード (Alt + R / macOS: Option + Cmd + R)を使用します。
活用例:キーバリューの構造入れ替え
以下のような「ID: 名前」形式のログテキストを、「{ id: "ID", name: "名前" }」のJSON形式に変換したい場合。
変換前テキスト:
user_101: Tanaka
user_102: Suzuki
user_103: Takahashi
検索パターン (Find):
^([a-z_0-9]+):\s*([A-Za-z]+)$
置換パターン (Replace):
{ id: "$1", name: "$2" },ポイントの解説
(...)丸カッコで囲むことで、マッチした部分をキャプチャグループとして保存します。- 置換文字列側の
$1は1番目のカッコ(user_101等)、$2は2番目のカッコ(Tanaka等)に置換されます。 - 置き換えを実行する前に、エディタ上でマッチしている箇所がハイライト表示されるため、誤った置換を防ぐことができます。
現場目線のTips(改行コードと検索トグルの罠)
- 改行コードの差異(CRLF / LF): 行末
$はどちらの改行コードでも正しく機能しますが、改行そのものを削除・置換して1行にまとめたい場合は\r?\nまたは\nを検索対象にします。特にWindows(CRLF)とMac(LF)が混在するチーム開発では、改行置換時に\rだけが取り残されないよう注意が必要です。- 意図しないトグルの確認: 「正規表現を書いたのにマッチしない」と悩む原因の多くは、隣にある 大文字小文字の区別 (
Alt + C)や 単語単位 (Alt + W)のトグルが有効になっているケースです。マッチしない時は検索バー右端のアイコン状態を確認してください。
実体験:定時退社を手繰り寄せたショートカット習慣
以前、古いシステムから新システムへの移行作業で、約500件のカラム定義をMarkdownテーブルへ手変換するタスクがありました。
チームの先輩が「半日かかるな……」と溜息をついていた作業を、正規表現のキャプチャ置換を使ってわずか 2分 で全件変換して提出したところ、「どうやったの!?」と非常に驚かれた経験があります。
タイピングの速さではなく、「エディタの機能をどれだけ引き出せるか」がエンジニアの生産性を左右します。
まとめ:よく使う置換パターンは手帳にメモしておこう
マルチカーソルと正規表現置換は、一度体で覚えてしまえば生涯使える強力なスキルです。
Ctrl + Dで同じ単語をまとめて変更Shift + Alt + Iで選択範囲の全行末にカーソル設置([^,]+)でカンマ区切りのキャプチャ
まずは日常のコード編集の中で、意識して Ctrl + D を使うことから始めてみてください。単純作業の苦痛が快感に変わる瞬間を実感できるはずです!
エディタ上での高速置換テクニックと合わせて、メモやナレッジ管理ツール(Obsidian)内で安全に正規表現置換を行う方法については以下の記事で解説しています。