【実務・中級編】Sublime Textをデータ処理ツールにする!「Column Selection」と「Python API」でCSVを爆速整形 – 軽量・高機能テキストエディタ生産性向上バイブル

Sublime Textを「ただのテキストエディタ」で終わらせるな:Python APIでCSVを料理する究極のデータ処理術

多くのエンジニアがSublime Textを「軽量なメモ帳」や「コードのチラ見用」として使っている。だが、それはフェラーリで近所のコンビニに買い物に行っているようなものだ。

Sublime Textの真髄は、その極限まで最適化されたレンダリングエンジンと、OSの深層にアクセス可能なPython APIにある。特に数万行におよぶ不整形なCSVやログファイルを扱う際、Excelを立ち上げるのは時間の無駄であり、Pandasでスクリプトを書くほどでもない「隙間のデータ処理」において、Sublime Textは最強の武器となる。

今日は、私が現場で「データクレンジングの神」と崇められる理由である、Sublime Textを本格的なデータ処理プラットフォームに変貌させる手法を伝授する。

—

1. Column Selection:脳内モデルをエディタに直結させる

マウスでドラッグする時代は終わった。Column Selection(列選択)は、データの構造を可視化し、一括で操作するための必須スキルだ。

  • Windows/Linux: `Shift` + `Right Click` (または `Alt` + ドラッグ)
  • macOS: `Option` + ドラッグ

これに加えて、`Ctrl + D`(次を検索して選択)を組み合わせる。例えば、CSVの特定のカラムだけを抽出したい場合、まずキーとなるカラムの先頭にマルチカーソルを置き、`Ctrl + D`で全行の該当箇所を選択すれば、数秒で加工が可能だ。

現場の秘訣:
カラムがタブ区切りや特定の記号区切りであれば、`Ctrl + A` で全選択し、`Ctrl + Shift + L` を叩く。これで全ての行末にカーソルが並ぶ。ここから`Home`や`End`、`Ctrl + Left/Right`を駆使すれば、数万行のレコードを一瞬で定型化できる。

—

2. Python APIによる「動的データクレンジング」

外部ツールにデータを渡すのはオーバーヘッドが大きい。Sublime Textのコンソール(`Ctrl + ` `)から直接Pythonコードを実行し、バッファ内のテキストを即座に書き換えるのが、真のエンジニアの流儀だ。

以下は、読み込んだCSVの特定カラム(例:2列目)を正規化し、トリムして値を置換するスクリプトだ。

import sublime

現在アクティブなビューに対して操作を行う
view = sublime.active_window().active_view()

編集用のアクションをグループ化(Undoで一括元に戻せるようにする)
view.run_command(“insert_snippet”, {“contents”: “— Processing —“})

全テキストを読み込み、行ごとに処理する
content = view.substr(sublime.Region(0, view.size()))
lines = content.splitlines()
new_lines = []

for line in lines:
cols = line.split(‘,’)
if len(cols) > 1:
# 2列目(index 1)をクリーンアップ:空白削除と全角英数を半角へ
cols[1] = cols[1].strip().lower()
new_lines.append(“,”.join(cols))

編集内容を反映(バッファ全体の置換)
view.replace(sublime.Edit, sublime.Region(0, view.size()), “\n”.join(new_lines))

これを`User/Packages`ディレクトリに保存し、`Keymap`でショートカットを割り当てれば、「特定のプロジェクト専用のデータ整形ツール」が完成する。

—

3. チームの生産性を底上げする「設定共有化」の流儀

Sublime Textの設定はJSONで完結する。チーム開発において、個人の好みで設定がバラつくのは「技術的負債」だ。リポジトリのルートに`.sublime-project`ファイルを配置し、設定をプロジェクト単位で厳格に管理せよ。

`project.sublime-project` のベストプラクティス

{
“folders”: [
{ “path”: “.” }
],
“settings”: {
“tab_size”: 4,
“translate_tabs_to_spaces”: true,
“trim_trailing_white_space_on_save”: true, // 保存時に行末空白を全削除(diff汚染を防ぐ)
“ensure_newline_at_eof_on_save”: true, // ファイル末尾の改行を強制(Gitの基本)
“default_line_ending”: “unix” // チーム全員の改行コードを統一
}
}

このファイルをGit管理下に入れることで、メンバー全員の編集環境が自動的に同期される。

—

4. 導入すべき「神プラグイン」厳選3選

膨大なパッケージの中から、実務で「これなしでは生きられない」ものを絞り込んだ。

1. Package Control: 必須中の必須。これがないと始まらない。
2. LSP: VS Codeのような強力な補完環境をSublimeで実現する。特にPythonの型チェックやRustのコンパイルエラーをリアルタイムで検知できる。
3. AdvancedNewFile: `Ctrl + Alt + N` でファイル作成。パスを入力するだけで階層構造まで一括生成する。ディレクトリをポチポチクリックする時代は終わりだ。

—

最後に:アーキテクトからの提言

Sublime Textが愛される理由は、その「軽さ」ではない。「エンジニアの思考を妨げないレスポンス」にある。データ処理をする際、重厚長大なIDEを開くことは、思考のコンテキストスイッチを発生させる。

今すぐ設定ファイルを開き、自分の作業フローを自動化するスクリプトを一行書いてみてほしい。その数秒の投資が、1年後には数千時間の節約となってあなたに返ってくるはずだ。

Sublime Textをただのエディタにするな。君だけの最強のツールボックスへと進化させろ。

タイトルとURLをコピーしました