tmuxのコピーモードのキーバインドを考えてみた


~/.tmux.conf
# 設定リロード
bind r source-file ~/.tmux.conf \; display-message "Reload Config!!"

# "C-b, [" コピーモードの設定 vi
#set-window-option -g mode-keys vi
setw -g mode-keys vi

# [?]キーバインドの確認

# [p]貼り付け
bind p paste-buffer

# c[Enter]コピー
#bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
bind -t vi-copy Enter copy-pipe "xclip -i -selection clipboard"

# c[Space]選択

# [y]1行コピー(クリップボードとの連携がない場合)
bind -t vi-copy Enter copy-pipe "xclip -i -selection clipboard"
bind -t vi-copy Y select-line
bind y run 'tmux copy-mode\; send-keys Y Enter'

## [y]1行コピー(クリップボードとの連携がある場合)
#bind -t vi-copy Y copy-line
#bind y run 'tmux copy-mode\; send-keys Y'

# [v]全行コピー
bind -t vi-copy V begin-selection
bind v run 'tmux copy-mode\; send-keys ggVG Enter'

ポイントは、send-keysです。最後の行だけを見ていきましょう。

bind v run 'tmux copy-mode\; send-keys ggVG Enter'

これは、続けて ggVG Enter の順でキーを押すという命令になっています。

copy-modeで使えるコマンドは以下の記事が参考になります。

tmux での1行コピー または man tmux に載っていないコマンド

最終的に使うキーは簡易なものを設定し、それまでのキーはできるだけ押しにくいキーを設定すると便利です。