自分だけの開発環境を整える:ターミナル設定の記録
ターミナルは、日々の開発作業で最も触れる機会の多いツールでありながら、設定を後回しにしがちです。複数のプロジェクトを並行しているとき、わずかな操作の違いが作業効率を大きく左右します。私自身、長年デフォルトに近い状態で作業してきましたが、あるとき限界を感じて一から見直すことにしました。
本記事では、私が実際に試したシェルやプロンプト、エイリアスまわりの設定を紹介します。同じ壁にぶつかっている方の参考になればと考え、変更点や運用で気づいた点をまとめました。派手な装飾よりも、再現性と保守性を重視しています。
ターミナル設定は一度整えれば長く使える反面、最初の一歩を踏み出すのは腰が重いものです。少しずつ知見をまとめてきた過程を、これから環境構築を進める方の参考になれば嬉しいです。
シェル選定から見直した基本構成
最初に考えたのは、Mac標準のzshを継続するか、fishやNushellなど別のシェルに移行するかでした。最終的にzshを選んだ理由は、過去のスクリプトとの互換性とプラグインの豊富さにあります。互換性を捨てると、これまでの資産を移植するコストが大きすぎました。
プロンプトのフレームワークにはStarshipを採用しました。Rust製の軽量なツールで、設定ファイルはTOML形式で記述できます。プラグイン管理にはOh My Zshの代わりにsheldonを使い、起動速度の改善とGitでの一元管理を狙いました。
配色は長時間作業しても目が疲れにくいものを選んでいます。NordやSolarizedを試した末、現在はCatppuccinに落ち着きました。視認性と心地よさのバランスが取れていると感じます。
プロンプト表示の最適化
プロンプトにはGitのブランチ名、ステージング状態、リモートとの差分を表示しています。コミット漏れやプッシュ忘れを防ぐためです。Starshipではこれらの情報を標準で表示できるため、複雑なスクリプトを書く必要がありませんでした。
作業ディレクトリが深くなったときのために、パスの短縮表示も設定しました。zshのchpwd_functionsに手を加え、深い階層では自動で頭文字だけを表示するようにしています。視線の上下移動を減らすだけでも、集中力は保てます。
色はANSIエスケープシーケンスではなくトークン化されたカラーコードで統一しました。後から色を一括変更したいとき、sedで置換できる利点があります。
エイリアスと関数で操作を短縮する
よく使うコマンドにはエイリアスを貼っていますが、すべてを短い名前に置き換えるのは避けています。半年後に見たときに意味がわからなくなるリスクがあるためです。代わりに、接頭辞をつけてグルーピングする方法を採用しました。
たとえばgはgit操作全般、dはdocker関連、pはプロジェクト固有の操作、といった具合に分類しています。頻出する長文オプションは関数化し、引数を受け取れる形にしました。
設定ファイルには、なぜそのエイリアスを定義したのかというコメントを残しています。半年後の自分が読む前提で書くことで、引き継ぎが不要になり再現性が保たれます。
開発ツールとの連携を強化する
エディタとの連携も重要な要素です。VS CodeやCursorのターミナル機能は便利ですが、独立したターミナルからファイルを開きたい場面も多くあります。code . のようなコマンドを活用し、ディレクトリ移動からエディタ起動までをワンアクションで完結させています。
fzfとripgrepを組み合わせた検索環境は手放せなくなりました。Ctrl+R でコマンド履歴をあいまい検索し、Ctrl+T でファイルパスを即座に呼び出せます。マウスに手を伸ばす頻度が減り、作業の流れが途切れにくくなりました。
tmuxも導入し、複数のウィンドウをセッションとして保存しています。再起動時の復元がスムーズになり、長時間のハッカソンでも安定した作業環境を維持できました。
設定のバックアップと再現性を確保する
設定ファイルはGitでバージョン管理し、GitHubのプライベートリポジトリでバックアップしています。新しいマシンをセットアップするときも、リポジトリをクローンして数コマンド叩くだけで環境が再現できます。記事 デザインシステム構築の第一歩 でも触れられているように、最初に仕組みを整えておくことが後々の安心感につながります。
ただし、機密情報を含む設定は別管理にしています。環境変数やトークン類はdotenvや1Passwordに保存し、リポジトリには含めません。.gitignoreの設定も忘れてはいけません。
設定変更時には、必ず動作確認をしてからコミットしています。シェル起動時のエラーは全体の作業に直結するため、変更の影響範囲を意識する習慣が身につきました。
普段の運用で気をつけていること
設定は追加し続けると肥大化しがちです。使わなくなったエイリアスや関数は定期的に見直すようにしており、四半期に一度、設定ファイルを読み返して不要な記述を削除する時間を取っています。
他人の設定を参考にする際は、そのままコピーするのではなく、自分の作業動線を意識して取捨選択しています。流行の設定を盲従すると、自分に合わない環境に使わされる結果になります。
ターミナル環境は育てていくものです。最初から完璧を求めず、小さな改善を積み重ねていく姿勢が、結果的に一番心地よい環境を作ります。
ターミナル環境を整える際に役立った工夫
- プラグインやテーマは最小限に絞り、起動速度を維持する
- エイリアスは意味のある接頭辞をつけてグルーピングする
- 設定ファイルには必ずコメントで意図を残す
- 機密情報はdotenvやパスワードマネージャーに分離する
- 設定変更後は動作確認をしてからコミットする
- 使わなくなった記述は定期的に削除する習慣をつける
- 自分の作業動線に合わない設定は無理に取り入れない
私自身、こうした環境づくりを通して、ソフトウェア設計の考え方に近いものを感じました。個人開発やハッカソンでの試行錯誤はsuema-r で発信しています。新しい環境づくりのヒントを探している方は、ぜひ覗いてみてください。設定ファイルの話だけでなく、デザインやワークフローに関する話題も多く扱っています。