【愛する道具 11日目】tmuxと出会ったのは最近のことです。
どうも、まるさ@maruuusa83です。
まるさのひとりアドベントカレンダー11日目です。
プログラミングがテーマの記事、第三弾です。
3回目にしてようやくアプリケーションの話ですw
今回は地味~な記事でございますw みんなが使う、あの道具のお話です。
普段のプログラミング環境
ぼくは基本的にプログラミングはVから始まる3文字のエディタを使いたいタイプの人間でございます。
そのせいもあってか、できればプログラミングをするときにはあまりマウスに触りたくないんですね。
というわけで、適当なサーバだとかVMとかにSSHでつないでCentOS上で開発するのが好きです。マウス使わなくていいし。
普通にSSHをつないでエディタを開いて、コンパイルなり実行するなりするときはエディタを閉じて・・・だなんてことをやっていました。
当時は気になっていませんでしたが、今思えば面倒で苦しいですね。
そう、最近になって出会ったわけです。あいつに・・・!
ターミナルマルチプレクサ tmux
ひぎぃ!なんで今まで知らなかったんだ!悲しい!!!!
仮想端末マネージャともいうんですかね。よくわかりませんが。
たくさん便利なことがあります。
- 1つの端末(SSHの画面)上で、画面分割によって複数の(仮想の)端末を扱える(先の写真参照)
- 「ウィンドウ」機能で複数の画面を持てる(Macでいうところの仮想デスクトップ)
- アタッチ/デタッチ機能で接続の状態をそのまま保存できる
- SSH上でマウスなしに任意の部分のコピー&ペーストが行える
サーバとの回線が切れちゃったとしてもtmuxがセッション情報を保存してくれているのですぐ元の画面に戻ることができます。
適当なサーバを踏み台にして1つの画面で複数のサーバにSSH接続することもできますね。
なんかこの手の話題はマサカリが飛んできそうで怖いですねえw
一番よくやる分割
母艦の画面の解像度が1920x1080のマルチスクリーンでたっぷり使えるのでこんな感じにしてます。
だいたいこんな感じのウィンドウが増えていきます。
右側の画面ではgitのグラフを出してたりすることが多いです。いやあ、便利ですねえ。
実行に時間がかかるプログラムでも別ペインなり別ウィンドウで走らせるなりしておけば作業が止まることはありませんね。
環境構築やなんかするときもこの分割がとても便利なものです。
どうしてもyumやらapt-getやら必要になりますが、tmuxがあればその実行中も別のペインでゴリゴリ作業が進むので効率がいいですね。
.tmux.confのソレ
set -g prefix C-t unbind C-b # about pane bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R bind -r H resize-pane -L 8 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 8 # about copy mode setw -g mode-keys vi # esc set -sg escape-time 0 # reload conf file bind r source-file ~/.tmux.conf \; display "Reload conf file"
基本的にはコマンドをあのエディタっぽくするだけで、デフォの設定ばかりですw
tmuxを使っているとなんだかエスケープキーの感度が悪いので、set -sg escape-time 0
によってそのラグをなくします。
あっあとconfファイルのリロードコマンドは便利(というかないと超不便)なので付けておくとよいです。
今の運用
tmuxでセッションを保存できるのは本当に便利なので、つい先日tmuxサーバを設置して複数マシンで同じtmuxを共有できるようにしたところです。
母艦と外用PCとを使っている人だとあるとメチャメチャ便利ですね・・・
・・・あれw なんかこの節書くことがあんまりなかったw
まとめ
下手なIDEとかよりもずいぶん便利なんじゃないかなあとか思っています。
細かいいろいろなツールを効率よく扱うことができるようになるので、前よりもずっと楽になりました。
本当になぜ今まで知らなかったのかw プロコンやってるときとかに知りたかったw
まだtmuxを使ったことがないキミ!使ってみよう、tmux!(雑)
それでは、今回はこの辺で~~~ ノ
まるさ