tmuxでコンソールを快適に

コンソール、使ってますか?
Webアプリケーション開発をやっている人は、サーバがLinuxであることが多いと思うので避けて通れないですよね。

私は普段Emacsでプログラミングすることがほとんどなので、コンソールを使っている時間は長いです。
特に、Railsでの開発時にはWebrickの実行結果を見るし、Emacsでプログラムも書くし、MySQLのクライアントを使うしでコンソール画面を行ったり来たりすることが多いですね。

開発機はMac+VirtualBoxなので、Mac標準のターミナルエミュレータがタブを使えるのですが、メタキー+矢印キーが若干めんどいし、何個もSSHセッションを張るのもなんだかなぁと思ってました。かなりのものぐさなので、tmuxを使っています。

tmuxってなに?

tmuxはscreenと同じような仮想コンソールです。
screenと違うところはタブが使えるところのようなんですが、正直screenを意識して使ったことが無いので違いはよくわかりません…

何をやりたい?

複数コンソール画面を行ったり来たりしたいので、今回はtmuxでのタブを便利に使うことが目的です。

設定ファイルを晒せ!

素のままだと若干使い勝手がよくなかったので、こんな感じの設定で使ってます。

set-option -g prefix C-t # tmuxへのコマンドは^Cキーとtキーの同時押しにする
set-option -g default-terminal "screen-256color"  # 24bit色使用可能に
set-option -g bell-action none                    # エラー発生時のベルや画面フラッシュを停止

# Tab
set-option -g base-index 1 # タブ番号を1から。デフォルトだと0からなので思いの外使いにくかったです

# Window
set-window-option -g automatic-rename on # タブ名をコマンド名に自動設定
set-window-option -g mode-keys vi        # viキーバインドを使用
set-window-option -g monitor-activity on # 非表示タブ内でコマンドからリターンがあった場合にタブの色を反転
set-window-option -g utf8 on             # キャラクタセットをutf8に設定

# Status Line
# Colour code [http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html]
set -g status-fg colour255
set -g status-bg colour234
set-window-option -g window-status-fg default
set-window-option -g window-status-bg default
set-window-option -g window-status-current-fg colour255
set-window-option -g window-status-current-bg colour17
set-option -g status-left '#[fg=colour0,bg=colour243][S:#S]#[default]'
set-option -g status-right '#[fg=colour0,bg=colour243][%Y/%m/%d(%a)%H:%M]#[default]'

# History
set-option -g history-limit 10000 # スクロール可能な行数を10,000行に

# Scroll
set-window-option -g mode-mouse on # マウスホイールを有効に。これを有効にするとマウスで文字列のヤンクができなくなります。
set-option -g mouse-select-window on
set-option -g mouse-select-pane on
set-option -g mouse-resize-pane on

この内容を^/.tmux.confというファイル名で保存します。

これでどうなるの?

この設定で、tmuxのタブ部分はこんな感じになります。

tmuxステータスライン

今アクティブになっているのは “2:emacs*“のタブで、^C-t 1とタイプすると”1:ruby”のタブに移動します。
^C-t [でtmuxのコマンドを実行できるモードになり、viのキーバインドでスクロールや履歴の検索ができます。また、マウスのホイールでスクロールもできます。

という感じでタブの設定ができました。
いじょう!

GitHub::dot.tmux.conf