よしかわーるど

プログラミングで世界を変える

tmuxをカスタマイズする

どうも、よしかわです。

1年生の頃からSSHを多用していたため、tmuxを使っていました。

tmuxについて触れていきます。

対象読者

  • ターミナルで作業したい人
  • SSHを多用している人

はじめに

そもそもtmuxとは何かについて触れていきましょう。

tmuxとは

tmuxは端末多重化ソフトウェアです。

つまり、1つのウィンドウだけでターミナルを複数立ち上げることを可能にするということです。

メリット

  • OSが変わったときでも ショートカットを覚え直す必要がない
  • セッションを記憶するので、 作業を保存したり再開できたりする
  • リモートマシンにtmuxを入れておけば SSHセッションは1つで大丈夫

マルチタスクを要するときに、SSHセッションを複数用意しなければいけなかったが、tmuxがあれば単体でも大丈夫。

tpmをインストール

tpm(Tmux Plugin Manager)をインストールします。

tmux-plugins/tpm

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

tmux.confを書いていく

MacOSはこちら

#List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'tmux-plugins/tmux-online-status'
set -g @plugin 'tmux-plugins/tmux-cpu'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-resurrect'

# prefixキーをC-aに変更する
set -g prefix C-a

# C-bのキーバインドを解除する
unbind C-b

# キーストロークのディレイを減らす
set -sg escape-time 1

# ウィンドウのインデックスを1から始める
set -g base-index 1

# ペインのインデックスを1から始める
setw -g pane-base-index 1

# C-a*2でtmux内のプログラムにC-aを送る
bind C-a send-prefix

# | でペインを縦に分割する
bind | split-window -h

# - でペインを横に分割する
bind - split-window -v

# Vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+

# 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

# 256色端末を使用する
set -g default-terminal "screen-256color"

# ステータスバーの色を設定する
set -g status-fg white
set -g status-bg black

# ウィンドウリストの色を設定する
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
# アクティブなウィンドウを目立たせる
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

# ペインボーダーの色を設定する
set -g pane-border-fg green
set -g pane-border-bg black
# アクティブなペインを目立たせる
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

# コマンドラインの色を設定する
set -g message-fg white
set -g message-bg black
set -g message-attr bright

# ステータスバーを設定する
set-option -g status-position top
## 右パネルを設定する
set -g status-right-length 120
set -g status-right "online: #{online_status} |CPU: #{cpu_percentage}|Battery: #{battery_percentage} | %m/%d %H:%M "

## Run tpm
run -b '~/.tmux/plugins/tpm/tpm'

Linuxはこちら

#List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'tmux-plugins/tmux-online-status'
set -g @plugin 'tmux-plugins/tmux-cpu'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-resurrect'

# prefixキーをC-aに変更する
set -g prefix C-a

# C-bのキーバインドを解除する
unbind C-b

# キーストロークのディレイを減らす
set -sg escape-time 1

# ウィンドウのインデックスを1から始める
set -g base-index 1

# ペインのインデックスを1から始める
setw -g pane-base-index 1

# C-a*2でtmux内のプログラムにC-aを送る
bind C-a send-prefix

# | でペインを縦に分割する
bind | split-window -h

# - でペインを横に分割する
bind - split-window -v

# Vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+

# 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

# 256色端末を使用する
set -g default-terminal "screen-256color"

# ステータスバーの色を設定する
set -g status-fg white
set -g status-bg black

# ウィンドウリストの色を設定する
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
# アクティブなウィンドウを目立たせる
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

# ペインボーダーの色を設定する
set -g pane-border-fg green
set -g pane-border-bg black
# アクティブなペインを目立たせる
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

# コマンドラインの色を設定する
set -g message-fg white
set -g message-bg black
set -g message-attr bright

# ステータスバーを設定する
set-option -g status-position top
## 右パネルを設定する
set -g status-right-length 120
set -g status-right "online: #{online_status} |CPU: #{cpu_percentage}|Battery: #{battery_percentage} | %m/%d %H:%M "

## Run tpm
run -b '~/.tmux/plugins/tpm/tpm'

tmux.confを読み込ませる

上記のconfを書き終えたら、実行してみましょう。

tmux source ~/.tmux.conf

次に以下のコマンド実行

Ctrl + a + I

これでtmuxのプラグインをインストールします。

tmux

関連の記事

ターミナルをカスタマイズする

vimをカスタマイズする

参考文献

達人に学ぶ.tmux.confの基本設定

tmuxを必要最低限で入門して使う