tmux入れてみた

端末の画面を分割して表示したいと思った。

linuxの画面分割について調べてみると、tmuxやterminatorとかいうソフトウェアで実現できるとのこと。

terminatorは端末エミュレーターのひとつ、tmuxは端末マルチプレクサーのひとつらしい。 端末エミュレーター、端末マルチプレクサーとはなにか?よくわからなかった。今のところ以下のようにぼんやりと解釈している。合っているかはわからない。

  • 端末エミュレーター… 端末をエミュレートする。GUIからコンソールを覗ける?有名なのはgnome terminal, terminator, iterm2(Mac)など。
  • 端末マルチプレクサー…ひとつの仮想端末から複数のログインセッション(?)を扱える?有名なのはtmux,GNU screen, byobuなど。

画面分割機能はterminator,tmuxのどちらでも実現可能。 リモートからSSH接続したときでも画面分割が利用できるので、tmuxを入れることにする。

.tmux.confファイルに設定を記入する。ここを参考にした。 qiita.com

上記リンクのコピーモード設定はMacのもの。下記のページ群を参考に、Ubuntu版をファイルに記入した。 Everything you need to know about Tmux copy paste - Ubuntu · rushiagr coderwall.com qiita.com

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

# マウス操作を有効にする
setw -g mouse

# 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 -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
## 右パネルを設定する
set -g status-right "#[fg=cyan][%Y-%m-%d(%a) %H:%M]"
## リフレッシュの間隔を設定する(デフォルト 15秒)
set -g status-interval 60
## ウィンドウリストの位置を中心寄せにする
set -g status-justify centre
## ヴィジュアルノーティフィケーションを有効にする
setw -g monitor-activity on
set -g visual-activity on
## ステータスバーを上部に表示する
set -g status-position top

# コピーモードを設定する
## viのキーバインドを使用する
setw -g mode-keys vi
## コピーモードの操作をviライクに設定する
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "xsel --input --clipboard"

なお、普通にマウスでコピーしたいときは、shiftキーを押しながらコピーすればよい。地味に大事な情報だと思う。