Vim
Rails
tmux

アプリ開発する時のtmuxペイン分割の仕方を晒してみる

はじめに

僕は開発中、ターミナルが住処であることが多く、主にtmuxで何枚かにペイン分割して開発しています。
といっても、tmuxを起動したら自動でペイン分割するようセッティングしているわけではなく、開発しながら逐一ペイン分割・調整しながら使っている感じです。
tmuxは自分好みにペイン分割できるところが気に入ってます。

tmuxの機能や使い方に関する記事はたくさんあるのですが、開発のときにどうやってペイン分割しているかという記事はあまり見かけませんでした。
なので、自分が開発のときにどんな感じでペイン分割しているかを晒してみることにしました。

自分のペイン分割の仕方

例として、Railsアプリを開発しているときのペイン分割の仕方を晒しますー
image.png

ペイン一覧

画像に番号を振ってあるのですが、それぞれの用途はこんな感じです。

  1. 開発用エディタ(Vim)
  2. アプリログのストリーム(tail -f log/development.logなど)
  3. 開発用Webサーバをフォアグラウンドで起動(rails swebpack-dev-serverなど)
  4. Linuxコマンド実行(gitとかgrepなど)
  5. アプリのデバッグコンソール用(rails cなど)

ペイン分割の意図

以上はRailsアプリの例で書きましたが、他の言語でも基本はこの5つのペインで分けています。
以下にこのペイン分割にした意図を書いておきます。

ペイン1:開発用エディタは大きめに使いたい

僕は開発エディタは主にvimを使っているのですが、VimFilerで左部にファイラーも表示した使い方をしているので、幅を狭めたペインの使い方はあまりしっくり来ませんでした。

なので幅も高さもなるべく大きめにとって、必要であればVim内で:spとか:vspとかで画面分割するようにしています。

ペイン2:ログストリームは常時表示させておく

開発のデバッグのために、アプリのログを読むことはとても重要だと思います。

以前は別ターミナルを立ち上げてログを表示していたのですが、複数ターミナルウインドウがあると違和感があったので、エディタの横に常時表示させるようにしました。

情報がtmuxのペイン内に集約された感じが気に入っています。

ペイン3:Webサーバ起動ペインは最小限に、だがフォアグラウンド表示はする

Railsなどのアプリ開発をするときは、アプリの動作確認などをするためにlocalhostでWebサーバを起動することになると思います。

Webサーバのプロセスはバックグラウンドで動かしたほうがペインのスペースを節約できはするのですが、そうすると日を置いて開発を再開しようとしたときに「あれ、Webサーバ動かしてたっけ?」と迷うことが多かったので、フォアグラウンドで動かすようにしています。

あとはJavaScriptのwebpack-dev-serverなど、ホットリロードされる系のプロセスも、更新されているかが確認できる程度にペインに出しています。

こちらのログ自体はほとんど見ないので、起動だけしていることが分かる程度に小さめにしておいています。

ペイン4・5:コマンド実行やデバッグコンソールは残ったスペースを使う

残った下部のスペースで、開発に必要なコマンド実行やデバッグコンソールを使うようにしています。

小さめなスペースではあるのですが、案外gitgreprails cpsqlなど、様々なことができます。
このペインは必要に応じて1つにしたり、3つにしたり、臨機応変に使い分けています。

開発用のエディタを開いたままこのようなコマンドを実行できるのは、自分にとってかなり快適です。

終わりに

いかがだったでしょうか。もしもっといい分割の仕方などありましたらコメントいただけるとありがたいですー。