【実務・中級編】Sublime Text×Remote SSH:サーバー上のコードを直接編集してデプロイを爆速にする方法 – 軽量・高機能テキストエディタ生産性向上バイブル

Sublime Text × Remote SSH:サーバー直結編集でデプロイの摩擦をゼロにする

世の中にはVS CodeのRemote SSHがある。だが、あえてSublime Textを選ぶエンジニアは、ツールの「軽さ」と「応答速度」が思考のコンテキストスイッチに与える影響を知っているはずだ。

本稿では、Sublime TextのSFTPプラグインを使い、リモートサーバーをあたかもローカルディレクトリのように操るための、実務直結のアーキテクチャを提示する。単なる接続方法ではない。「なぜ遅延を感じるのか」「なぜ同期ミスが起きるのか」というボトルネックを排除し、デプロイサイクルを物理的な限界まで加速させる設定だ。

—

1. なぜ「SFTPプラグイン」なのか:同期の設計思想

Sublime TextのSFTPプラグインが優れているのは、単なるファイル転送機能ではない点にある。ローカルのキャッシュとリモートの差分を、独自レイヤーで管理できる点だ。

構築のベストプラクティス:鍵認証とSSH Configの統合

SFTPプラグインにパスワードをベタ書きするのは論外だ。必ず `~/.ssh/config` を利用し、SSHマルチプレキシング(接続の再利用)を効かせる構成をとる。これにより、Sublimeが裏で叩くSSHセッションの確立時間をゼロにできる。

~/.ssh/config (推奨設定)

接続の多重化を有効化。最初の接続時にセッションを維持し、次回の転送を爆速にする
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 10m

Host production-server
HostName 192.168.x.x
User deploy-user
IdentityFile ~/.ssh/id_rsa_prod

—

2. 現場で震えるほど役立つ「sftp-config.json」の実戦構成

プラグインの設定ファイルは、デフォルトのまま使ってはいけない。プロジェクト単位で `sftp-config.json` を最適化し、「保存時自動アップロード(upload_on_save)」と「無視リスト(ignore_regexes)」を厳格に定義するのが鉄則だ。

sftp-config.json (最適化済み)

{
“type”: “sftp”,
“save_before_upload”: true,
“upload_on_save”: true, // 保存と同時に転送。これが爆速デプロイの核
“sync_down_on_open”: false, // 開くたびにダウンロードすると重くなるので必要な時のみ実行
“ignore_regexes”: [
“\\.git”, “\\.DS_Store”, “node_modules”, “tmp”, “logs/.\\.log” // 不要な同期を省きI/O負荷を低減
],
“ssh_key_file”: “~/.ssh/id_rsa_prod”,
“connect_timeout”: 30,
“remote_path”: “/var/www/project/current/” // サーバー側のルートパス
}

—

3. 生産性を極限まで引き上げる「神プラグイン」とキーバインド

Sublime Textの真価は、キーボードだけで完結する操作体験にある。

必須プラグイン

1. SFTP: 今回の核。これがないと始まらない。
2. Package Control: 全てのプラグイン管理の基盤。
3. LSP: サーバー上の言語サーバー(pyright, gopls等)と接続する。これを入れることで、リモート環境でもローカル同等の補完能力を手に入れる。

爆速操作のためのカスタム・キーバインド(`Default (OSX).sublime-keymap`)

Ctrl+Sで保存した瞬間、裏で転送が走り、サーバー側で即時反映される。この「保存=デプロイ」の感覚を体感すると、もう従来のCLIベースのデプロイには戻れない。

[
// リモートサーバーとの同期を即座に実行するコマンド
{ “keys”: [“super+shift+u”], “command”: “sftp_upload” },
// サーバー上の最新状態を強制取得
{ “keys”: [“super+shift+d”], “command”: “sftp_download” }
]

—

4. チーム開発における「設定共有化」のルール

チーム全員が別々の設定を使っていると、同期漏れや意図しないファイルの削除事故が起きる。これを防ぐ唯一の解は、`.sublime-project` ファイルのバージョン管理だ。

プロジェクトルートに以下のファイルを置き、Git管理下に置く。

my-project.sublime-project

{
“folders”: [
{
“path”: “.”,
“folder_exclude_patterns”: [“node_modules”, “.git”],
“file_exclude_patterns”: [“.log”]
}
],
“settings”: {
// プロジェクト固有のタブ幅やインデント設定を強制
“tab_size”: 4,
“translate_tabs_to_spaces”: true
}
}

これにより、誰がクローンしてもエディタ環境が統一され、「インデントが違う」「不要なファイルが同期された」というチームの不和が劇的に解消される。

—

チーフエンジニアからの提言

Sublime Textを「単なるテキストエディタ」として使うのは、フェラーリで近所のコンビニに行くようなものだ。

SFTPプラグインを使いこなし、`~/.ssh/config` で接続を最適化し、`.sublime-project` でチームの作法をコード化する。この環境を整えた瞬間、君の手元は物理的なサーバーと直結し、コードを打つリズムとサーバーの応答が「同期」する。

「保存する」という動作そのものが、そのまま「リリース」になる。
その体験こそが、エンジニアのフロー状態を最大化し、プロダクトの品質を底上げする。まずは今すぐ、`sftp-config.json` を書き換えてみてほしい。その先には、今までとは全く異なる開発体験が待っている。

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