Sublime Textの正規表現置換を「思考の速度」まで引き上げる:DevOpsリードが伝授する文字列操作の極意
多くのエンジニアが「Sublime Textは速い」と言う。だが、その速さの真意を理解している者は少ない。Sublime Textの真価は、起動速度にあるのではなく、「正規表現を駆使した瞬時のテキスト変換」に最適化されたエディタ・アーキテクチャにある。
本稿では、GUIのメニューをポチポチ押すような低次元な操作を卒業し、正規表現を武器にコードベースを一瞬で書き換える「プロのハック」を伝授する。
—
1. 正規表現置換の神髄:キャプチャグループと後方参照
ただ文字を置き換えるのではない。「パターンの構造を抽出して、別の構造へと再構築する」ことこそが正規表現置換の核心だ。
実践例:JSONからTypeScriptインターフェースへの一撃変換
例えば、API定義のJSONをTypeScriptのInterfaceに変換する場合、脳内でパースして書く必要はない。
Before:
“user_id”: 123,
“user_name”: “kusanagi”,
“is_active”: true
Find: `”\s(\w+)”:\s(.),`
Replace: `public $1: typeof $2;`
解説:
- `(\w+)`: 最初のグループとしてキー名をキャプチャ。
- `(.)`: 二番目のグループとして値(型情報)をキャプチャ。
- `$1`, `$2`: 置換後の文字列で再配置。
これだけで、数百行のデータ定義も0.1秒で変換完了だ。重要なのは「置換後の定型句」を先にイメージし、それに合わせてキャプチャグループを設計する思考プロセスである。
—
2. 現場で震えるほど役立つ「複数行置換」のテクニック
Sublime Textの真の魔力は、`Ctrl+Shift+F`(Find in Files)と「マルチカーソル」の組み合わせにある。
複数行にまたがるコード整形(正規表現モードON)
例えば、関数の引数を改行して整理したい場合、正規表現の「改行を含まない」という常識を捨てろ。Sublime Textの正規表現エンジンは、設定次第で柔軟なマッチングを行う。
Find: `\((.?)\)`
Replace: `(\n $1\n)`
※ここで重要なのは、検索窓の左にある「.(正規表現ボタン)」を確実に押すこと。これを忘れると文字列として認識される。
—
3. 生産性を極限まで高める「神設定」と共有化ルール
個人の生産性をチームの標準にするには、`Preferences.sublime-settings`をGit管理下に置くのが鉄則だ。
推奨設定:`Preferences.sublime-settings`
以下の設定は、エディタを「コードを脳の延長線上に置く」ための必須設定である。
{
// ファイル保存時に末尾の空白を削除。Diffのノイズを排除する
“trim_trailing_white_space_on_save”: true,
// 保存時にファイル末尾に改行を強制。Gitのコミット履歴を汚さない
“ensure_newline_at_eof_on_save”: true,
// タブ入力を空白に変換。インデント崩れを物理的に防ぐ
“translate_tabs_to_spaces”: true,
// 編集中のファイルを視覚的に強調。迷子にならない
“highlight_line”: true,
// 画面外の折り返しを無効化。コードの構造を維持する
“word_wrap”: false
}
チームへの展開ルール
プロジェクトルートに `.sublime-project` を配置せよ。これにより、チーム全員が同じインデント幅、同じビルドタスク、同じ検索除外フォルダを共有できる。
{
“folders”: [
{
“path”: “.”,
“folder_exclude_patterns”: [“node_modules”, “dist”, “.git”], // 検索から除外してインデックスを高速化
“file_exclude_patterns”: [“.log”, “.min.js”]
}
]
}
—
4. 導入必須:開発スピードを倍化させるプラグイン3選
1. Package Control: 全ての出発点。これなしにSublimeを語る資格はない。
2. LSP: SublimeをVS Code並みのIDEへと昇華させる。Language Server Protocolを接続し、補完・静的解析をエディタに統合する。
3. RegReplace: これが真の切り札だ。 複雑な正規表現置換を「名前付きコマンド」として保存できる。頻出するリファクタリング(例:スネークケースからキャメルケースへの変換など)を、ワンキーで実行可能にする。
—
最後に:なぜ「正規表現」なのか?
優秀なエンジニアは、ツールに依存するのではなく、ツールを自分の思考を拡張するインターフェースとして再定義する。
正規表現を覚えることは、単なる文字列操作のスキルではない。「データの構造を抽象化して捉える」という、プログラミングの本質的な視座を手に入れることだ。
今日から、手動で修正するコードが10行を超えたら、「これは正規表現で置換できないか?」と自問自答してほしい。その一瞬の躊躇いが、あなたのエンジニアとしての価値を、そして開発スピードを劇的に引き上げるはずだ。
さあ、エディタを叩け。コードは意志に従う。