全力で怠けたい

怠けるために全力を尽くしたいブログ。

自分的 .tmux.conf の設定。

はじめに

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 + gMac のシステムショートカットキーや他のアプリと競合しない *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 のウィンドウ間を移動する方法。

参考サイト

*1:Vim と競合してしまうが、Vim のほうではあまり使わないキーなので許容した