コンソール、使ってますか?
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のタブ部分はこんな感じになります。
今アクティブになっているのは “2:emacs*“のタブで、^C-t 1
とタイプすると”1:ruby”のタブに移動します。^C-t [
でtmuxのコマンドを実行できるモードになり、viのキーバインドでスクロールや履歴の検索ができます。また、マウスのホイールでスクロールもできます。
という感じでタブの設定ができました。
いじょう!