はじめに
開発サーバーにSSHで接続して作業する場合、サーバー側に好みのエディタが入っていないことがほとんどです。そのような環境でも、Vimはほぼすべてのサーバーにデフォルトでインストールされているため、標準的な選択肢になります。
ただし「とりあえずVimで開いて編集する」だけの使い方では、ファイルの探索やターミナルとの行き来に余計な手間がかかります。本記事では、SSHでの作業効率を上げるVimの組み込み機能を3つ紹介します。いずれも追加プラグイン不要で使える機能です。
なぜVimの組み込み機能を活用するのか
SSHで接続したサーバーでの作業では、tmux や zellij のようなターミナルマルチプレクサをインストール・設定する余裕がない場面も多いです。一方、Vimには最初からファイルエクスプローラー・内蔵ターミナル・強力な検索機能が備わっており、設定ゼロで使い始められます。
また、ローカルの開発環境と異なりサーバー側のリソースは共有されていることが多いため、余分なプロセスを増やさずにVim単体で完結できる点も利点です。
1. vim . でエクスプローラーを開く
作業リポジトリまで cd したら、まず vim . コマンドを実行します。 これによりVim組み込みのファイルエクスプローラー(netrw)が起動し、ディレクトリのツリーを見ながら簡単にファイルを開いたりディレクトリを移動したりできます。

直接ファイル名を指定して開く場合と比べて、タイプミスで意図しないファイルを編集してしまうといったトラブルも防ぎやすくなります。
netrwではファイルを選択して Enter キーで開き、- キーで親ディレクトリへ移動できます。d キーで新規ディレクトリの作成、D キーでファイルの削除も可能です。設定ファイルやスクリプトが複数のディレクトリに散らばっている構成でも、ファイルシステムをナビゲートしながら素早く目的のファイルへたどり着けます。
2. :term でVim内にターミナルを開く
Vimでは :term コマンドを実行するとターミナルを起動できます。 このターミナルの便利な点は、Vimのヤンク(y)でコピーした文字列をそのまま貼り付けられることです。

開発サーバーでは README.md などに記載されたコマンドをコピーして実行する機会がよくあります。ファイルを開いたままターミナルに切り替えずコマンドを貼り付けて実行できるため、作業の流れが途切れません。
また、ターミナルの出力をVimのバッファにコピーすることもできるため、ログの一時保存や出力の共有などにも活用できます。
ターミナルモードから通常のVimコマンドモードへ戻るには Ctrl+\ → Ctrl+n の順に押します。これはSSH越しに使う際にはじめて戸惑うポイントなので、事前に覚えておくと便利です。
3. / による文字列検索で編集を効率化する
開発サーバー内では環境変数の設定ファイルや nginx の設定ファイルを編集する場面が多くあります。 Vimの / 検索を活用することで、長いファイルの中から目的の箇所にすばやくジャンプできます。

たとえば nginx の設定ファイルで特定の location ブロックを探す際、/location \/api のように検索すれば一瞬で該当箇所に移動して編集を始めることができます。 n キーで次の一致箇所へ、N キーで前の一致箇所へ移動できるのも便利です。
検索後は :nohl コマンド(または :noh)でハイライトを消せます。何度も同じパターンを検索する場合は、n / N キーで再検索できるためコマンドを再入力する手間がありません。
まとめ
今回はSSHでの作業時に役立つVimの組み込み機能として、以下の3点を紹介しました。
vim .でnetrwファイルエクスプローラーを開いてファイル管理をする:termでVim内ターミナルを起動してコピー&ペーストをシームレスに活用する/検索で設定ファイル内の目的箇所にすばやくジャンプする
実際に使ってみて感じたのは、SSHで接続する頻度が高い環境ほど、これらの操作を体に覚えさせておくと作業の集中が途切れにくくなるということです。Vimにはほかにもさまざまな便利な機能があります。今後もまとめていきたいと思います。


コメント