tmuxのすすめ
今回は tmux についての記事です。
私自身まだ十分に tmux を活用できていませんが、導入してからターミナル生活がとても快適になったので、普段どんな風に使っているかを書いていきます。
tmuxについて
tmuxは端末多重化ソフトウェアです。 詳細な説明は検索するとたくさん出てくるので割愛します。 ↓のリンクは私が導入するときに参考にした記事です。
私は1つのセッションの中で2~3つのウィンドウを作り、それを2~6つのペインに分割して使っています。
prefixキーについて
tmuxの機能は [prefixキー] を一度押した後 [特定のキー] を押すことで実行できます。
prefixキーのデフォルトはCtrl-b
です。私はCtrl-g
に変更しています。
tmux.confの設定
~/.tmux.conf
に設定を書くことができます。
# prefixキーをC-gに変更する set -g prefix C-g # C-bのキーバインドを解除する unbind C-b
おすすめ機能
導入した後にまずこれだけ使ってほしいという機能を紹介します。
その1: ウィンドウの分割
操作 | デフォルト | 私の設定 |
---|---|---|
ウインドウを上下に分割 | prefixキー → " |
prefixキー → - |
ウインドウを左右に分割 | prefixキー → % |
prefixキー → / |
上下分割の-
は横線で分けるイメージ、左右分割の\
は縦線で分けるイメージです。
tmux.confの設定
bind - split-window -v bind / split-window -h
その2: ペイン移動
操作 | デフォルト | 私の設定 |
---|---|---|
左のペインに移動 | prefixキー → Left |
prefixキー → Ctrl-h |
上のペインに移動 | prefixキー → Up |
prefixキー → Ctrl-j |
下のペインに移動 | prefixキー → Down |
prefixキー → Ctrl-k |
右のペインに移動 | prefixキー → Right |
prefixキー → Ctrl-l |
prefixキーのあとの設定をCtrl
+h,j,k,l
にすることによって以下の例のように少し移動が楽に(?)なります。
Ctrl
とg
を同時押しg
だけ離すh
を押す → 上のペインに移動完了
tmux.confの設定
bind C-h select-pane -L bind C-j select-pane -D bind C-k select-pane -U bind C-l select-pane -R
その3: ペイン最大化
操作 | デフォルト | 私の設定 |
---|---|---|
ペイン最大化/元に戻す | prefixキー → z |
変更なし |
選択中のペインをウィンドウいっぱいに拡張します。
該当のペインに移動して最大化、編集したら戻ったらまた次のペインへ...というような使い方をよくしています。
最後に私のtmux.confを貼って終わります。
tmux.conf
# prefixキーをC-gに変更する set -g prefix C-g # C-bのキーバインドを解除する unbind C-b # ウィンドウのインデックスを1から始める set -g base-index 1 # ペインのインデックスを1から始める setw -g pane-base-index 1 # 設定ファイルをリロードする bind r source-file ~/.tmux.conf \; display "Reloaded!" # 画面分割 bind - split-window -v bind / split-window -h # vimキーバインドでペインを移動する bind C-h select-pane -L bind C-j select-pane -D bind C-k select-pane -U bind C-l select-pane -R # vimキーバインドでペインサイズを変更する bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5 # マウス操作を有効にする setw -g mouse on # アクティブなウィンドウの色 set-window-option -g window-status-current-fg colour16 set-window-option -g window-status-current-bg colour178 # ペインのボーダーの色 set-option -g pane-border-fg black #base02 set-option -g pane-active-border-fg brightgreen #base01 # ステータスバーの位置を上にする set-option -g status-position top # status line の背景色を指定する set-option -g status-bg "colour235" # status line の文字色を指定する set-option -g status-fg "colour255" # status-left の最大の長さを指定する set-option -g status-left-length 20 # status-left のフォーマットを指定する set-option -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]" # status-right の最大の長さを指定する set-option -g status-right-length 60 # status-right のフォーマットを指定する set-option -g status-right "#[fg=colour255,bg=colour241] #h | %m/%d %H:%M:%S#[default]" # window-status のフォーマットを指定する set-window-option -g window-status-format " #I: #W " # カレントウィンドウの window-status のフォーマットを指定する set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]" # コピーモードでviのキーバインドを使用する setw -g mode-keys vi bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T vi-copy V send-keys -X select-line bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy" bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"