はじめに
tmux はごく一時期だけ使っていたことがあったが、あまり有用性を感じられず、その後はずっと使っていなかった。
少し前からまた使うようにしていて、まだ2週間くらいしか使っていないのだが、とても便利に使っていて、非常に有用性を感じている。
tmux.conf での設定はまだ少ないが、だいぶ使いやすくなったと思うので、内容をメモしておく。
tmux のバージョン。
$ tmux -V
tmux 3.3a
macOS のバージョン。
$ sw_vers | grep Product
ProductName: macOS
ProductVersion: 13.5.1
あと、自分が使っている MacBook Pro は JIS 配列のものになる。
.tmux.conf でのカスタマイズ
プレフィックスキーは Ctrl + b
から Ctrl + g
に変更した。
キーボード上では g と b は斜めに隣接しているキーではあるのだが、自分の場合は g のほうが b よりも断然押しやすく、手にかかる負担もだいぶ小さく感じる。
個人的には「プレフィックスキーを押すのがダルい」と感じていたのだが、Ctrl + g
に変えてからはあまり気にならなくなった。
また、プレフィックスキーの候補はいくつかあったが、Ctrl + g
は Mac のシステムショートカットキーや他のアプリと競合しない *1 ことも決め手となった。左手だけで押せるのもよい。
unbind C-b
set -g prefix C-g
プレフィックスキーを押した後、コマンドを連続入力できる長さ
プレフィックスキーを押した後、コマンドを連続入力できる時間を1000ミリ秒に変更した。
プレフィックスキーを押した後、デフォルトでは 500ミリ秒の間はコマンドを連続入力できるが、ウィンドウを複数のペインに分割している場合等、パッと移動先のキーを打てないことがあったため。
もう少し短くてもいいかもしれない。
set -g repeat-time 1000
ウィンドウ、ペインのインデックスは1から始める
ウィンドウ、ペインのインデックスは1から始めるように変更した。
ターミナルソフトは iTerm2 を使っているのが、iTerm2 ではタブ番号は1から始まるため、それに合わせた形になる。
set -g base-index 1
set -g pane-base-index 1
あと、ウィンドウを閉じたときにインデックスが詰まるようにしている。
set -g renumber-windows on
ペインの操作
ペインを |
で水平分割、-
で垂直分割するように変更した。
bind -r | split-window -h -c '#{pane_current_path}'
bind -r - split-window -v -c '#{pane_current_path}'
ペインの移動を Vim ライクなキーバインドで行えるように変更した。
bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r 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
また、Ctrl + z
でペインを最大化 / 元に戻せるようにしてある。
bind -n C-z resize-pane -Z
新規のウィンドウをカレントディレクトリで開く
新規のウィンドウを開く際、カレントディレクトリが作業ディレクトリになるようにした。
bind c new-window -c '#{pane_current_path}'
マウスでスクロールできるようにする
マウスホイールでスクロールできるように変更した。
マウスをホイールすると、デフォルトではコマンド履歴をスクロール (?) するようになっているが、バッファをスクロールするようにした。
set -g mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
ステータスラインをいい感じにする
ステータスラインがいい感じになるように、最小限だが変更した。
set -g status-justify "centre"
set -g status-bg green
setw -g window-status-current-style fg=default,bg=magenta
set -g status-interval 5
コピー操作
コピーモードに入った後、Vim ライクなキーバインドで操作できるように変更した。
setw -g mode-keys vi
デフォルトでは Space
で範囲選択を開始するが、Vim ライクに v
で範囲選択を開始するように。
bind -T copy-mode-vi v send-keys -X begin-selection
デフォルトでは Enter
で選択範囲をコピーするが、Vim ライクに y
で範囲選択をクリップボードにコピーするように。
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
通常の範囲選択 / 矩形選択の切り替えを、Vim ライクに Ctrl + v
で範囲選択を開始するように。
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
Shift+Command+ ], [ の同時押しで tmux のウィンドウ間を移動する
個人的には、tmux が最高に手に馴染むようになった設定 → Mac で Shift+Command+ ], [ の同時押しで tmux のウィンドウ間を移動する方法。
参考サイト