tmux でコマンドプロンプトの位置まで移動する方法
コマンドの実行結果が長かった場合に、そのコマンド実行の直前までターミナル画面をスクロールさせたいことがある。 そういう場合に使える、 tmux でコマンドプロンプトの位置まで移動する方法について。
tmux の man に書かれているが:
copy mode で使える
next-prompt
,previous-prompt
というコマンドがあり、これらを使うことでコマンドプロンプトの位置に移動することができる。tmux にプロンプトの位置を伝えるため、エスケープシーケンス
\033]133;A\033\\
を出力する必要がある。
ということでこんな感じに設定ファイルに書くと:
.zshrc
:PROMPT=$'%{\033]133;A\033\\%}'"${PROMPT}"
.bashrc
:PS1='\[\e]133;A\e\\\]'"${PS1}"
.tmux.conf
:bind-key -T copy-mode C-S-Up send-keys -X previous-prompt bind-key -T copy-mode C-S-Down send-keys -X next-prompt bind-key -T copy-mode-vi C-S-Up send-keys -X previous-prompt bind-key -T copy-mode-vi C-S-Down send-keys -X next-prompt
copy mode に入ってから ctrl + shift + ↑/↓で前/次のプロンプトまで移動できるようになる