【開発環境】Macにtmuxをインストールする 〜基本操作方法〜

開発環境
開発環境

tmux (terminal multiplexer) は複数のターミナルウィンドウを1画面に表示できる仮想端末です。普段複数のターミナルを開いて作業する人には断然おすすめツールです。あれっ?あのターミナルィンドウはどこいった?というような無駄な時間をなくすことができます。また、screenのようにセッション管理もできるのでバックグラウンドでの処理も安全に実行できます。

tmux公式ページ

brewでtmuxをインストールする

$ brew install tmux
(省略)
==> tmux
Example configuration has been installed to:
  /usr/local/opt/tmux/share/tmux

これだけです。ありがとうbrew!!
ちなみにインストールしたバージョンはv3.2aです。バージョンによって、後述する.tmux.confの書き方が変わってきますのでご注意ください。

tmuxの基本操作

tmux用語

  • セッション(Session)
    • tmuxに管理される仮想端末全体
    • 各セッションは1つ以上のウィンドウを持つ
  • ウィンドウ(Window)
    • tmuxセッション内に開かれている1つの仮想端末の画面全体
    • ウィンドウは1つ以上のペインを持つ
  • ペイン(Pane)
    • 分割されたウィンドウの単位
    • ペインそれぞれが独立した擬似端末となる
tmux構成

tmuxの使い方

基本コマンドをまとめました。

セッションの操作

コマンド動作入力場所
tmuxセッションを起動するターミナル
tmux new -s セッション名セッションに名前をつけて起動するターミナル
[Ctrl + b]のあと[d]デタッチ(現在のセッションから抜ける)仮想端末
exit現在のセッション終了(セッション削除)仮想端末
tmux kill-session -t セッション名セッション名を指定してセッションを終了するターミナル
tmux ls存在するセッションのリスト表示ターミナル
tmux attach存在するセッションが1つの時、そのセッションにアタッチする
(セッションに入る)
ターミナル
tmux attach -t セッション名セッション名を指定してアタッチするターミナル
tmux セッション操作コマンド

ウィンドウの操作

コマンド操作入力場所
[Ctrl + b]のあと[c]新しいウィンドウを作成
(自動的にウィンドウの番号が振られる)
仮想端末
[Ctrl + b]のあと[&]ウィンドウを閉じる仮想端末
[Ctrl + b]のあと[ウィンドウ番号]指定した番号のウィンドウが表示される仮想端末
[Ctrl + b]のあと[p]前の番号のウィンドウに移動仮想端末
[Ctrl + b]のあと[p]次の番号のウィンドウに移動仮想端末
[Ctrl + b]のあと[w]ウィンドウの一覧表示仮想端末
tmux ウィンドウ操作コマンド

ペインの操作

コマンド操作入力場所
[Ctrl + b]のあと[%]垂直分割(ペイン化)仮想端末
[Ctrl + b]のあと[“]水平分割(ペイン化)仮想端末
[Ctrl + b]のあと[x]ペインの削除(分割していない状態だとウィンドウが消える)仮想端末
[Ctrl + b]のあと[!]ペイン化解除(ウィンドウだけになる)仮想端末
[Ctrl + b]のあと[o]アクティブペインの移動仮想端末
[Ctrl + b]のあと[矢印キー]アクティブペインの移動仮想端末
[Ctrl + b]のあと[q]ペインのインジケーター(番号)表示仮想端末
[Ctrl + b]のあと[spaceキー]ペインレイアウト変更
(お気に入りのレイアウトが出てくるまでく繰り返す)
仮想端末
[Ctrl + b]のあと[:]コマンドモードへ移行仮想端末
[Ctrl + b]のあと
[:resize-pane -U 数字]
上部ペインのサイズ変更(コマンドモード)仮想端末
[Ctrl + b]のあと
[:resize-pane -D 数字]
下部ペインのサイズ変更(コマンドモード)仮想端末
[Ctrl + b]のあと
[:resize-pane -R 数字]
右部ペインのサイズ変更(コマンドモード)仮想端末
[Ctrl + b]のあと
[:resize-pane -L 数字]
左部ペインのサイズ変更(コマンドモード)仮想端末
tmux ペイン操作コマンド

もっと便利にカスタマイズする

「tmuxを使うならコピーモードを使いたいし、慣れ親しんだviコマンド風で使いたい」とか、「prefixの[Cntl + b]もキー配置的に片手で打ちにくいので変えたい」とか、「ペインのサイズ変更もマウスのドラッグで調整したい」とか、もっともっと便利にカスタマイズしていきます。

.tmux.confを編集していきます。

# prefixキーをC-qに変更
set -g prefix C-q

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

# vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

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

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

# マウス操作を有効にする
setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

# vimのキーバインドでペインを移動する
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

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

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

# マウス操作を有効にする
setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on

# コピーモードを設定する
# コピーモードでvimキーバインドを使う
set-window-option -g mode-keys vi

# 'v' で選択を始める
bind -T copy-mode-vi v send-keys -X begin-selection
# 'y'でクリップボードにコピー
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
# 'C-v'で矩形選択モードに切り替え
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
# 'V'で行ごと選択
bind -T copy-mode-vi V send-keys -X select-line
# Escで選択範囲解除
bind -T copy-mode-vi Esc send-keys -X clear-selection

.tmux.confをtmuxを落とさずに即時反映させる。

$ tmux source ~/.tmux.conf

コメント

タイトルとURLをコピーしました