✍️

tmuxで覚えること

に公開

はじめに

すこしずつ、私が覚えるたびに本記事は更新をしていきます。初歩的な内容で止まるかもしれませんし、応用的な内容も含まれるかもしれません。

前提

とても重要。OSとキーボードによってキー配列が変わるため、押しやすい押しにくいが変わります。ての届きやすい場所にマッピングし直していますが、本記事の条件は以下です。

  • Macbook
  • JISキーボード

インストール

brew install tmux

キーバインドの変更(bindボタン変更の前提作業)

CapsLockボタンをHomeボタンに置き換える。通常では置き換えられないためOSSを導入する
https://karabiner-elements.pqrs.org/

拡張

~/.tmux.config
# キーバインドをbから変更する。
# 人差し指が右下に来ると大きくホームポジションから手の形が崩れて辛いから
# CapsLockに事前にHomeを割り当てておく。これでbindが1ボタンになる
set -g prefix Home
unbind C-b
bind-key Home send-prefix

# 分割が押しにくいので、横分割を横棒をイメージしたハイフン、隣を縦分割とする
unbind '"'
unbind %
bind ^ split-window -h
bind - split-window -v

# Prefix + r でtmux.confと.zshrcをリロードする
bind-key r source-file ~/.tmux.conf \; \
   display-message "tmux.conf reloaded" \; \
   send-keys 'source ~/.zshrc && echo "zshrc reloaded"' C-m

# 1. Home + [ でコピーモード開始
# 2. Spaceキーで範囲選択開始(カーソルが下に移動しなくなる)
# 3. yでコピー完了
# コピーモードでviキーバインドを使用
setw -g mode-keys vi

# コピーモードのキーバインド設定
bind-key -T copy-mode-vi Space send-keys -X begin-selection
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

# option + 矢印キーでペインサイズ調整
bind-key -n M-Left resize-pane -L 3
bind-key -n M-Right resize-pane -R 3
bind-key -n M-Up resize-pane -U 3
bind-key -n M-Down resize-pane -D 3
# source
tmux source-file ~/.tmux.conf

alias

.zshrc
alias t='tmux attach || tmux'
alias ta='tmux attach -t'
alias tn='tmux new -s'
alias ts='tmux list-sessions'
alias tk='tmux kill-session -t'

セッション

# 新規セッション(alias tn)
tmux new -s <session name>
# セッション確認(alias tl)
tmux ls
# セッション指定しアタッチ
tmux a -t <session name>
# 前回のセッションをアタッチ(alias t)
tmux a
# セッション削除
tmux kill-session -t <session name>

基本操作

# セッションを抜ける(デタッチ)
Prefix d

# ペイン 縦 分割(ただし - に上書きしている)
Prefix %

# ペイン 横 分割(ただし ^ に上書きしている)
Prefix "

# ペイン移動
Prefix 矢印

# 選択中のペインを閉じる
exit
crtl + d

# ズームイン ズームアウト
Prefix z

# セッションの切替
Prefix s

# スクロールモード
Prefix [
その後、矢印キーかPageUp Downで操作する。MacbookでPageUp DownはFn + 上下
# スクロールモード抜けるとき
q

Discussion