現在のウィンドウの履歴バッファ tmux
を検索するには、Ctrl-b [ を押して copy mode
を入力します。
emacs のキーバインド(デフォルト)を使用している場合は、Ctrl-s を押してから検索したい文字列を入力して Enter を押します。n キーを押すと、同じ文字列を再度検索することができます。逆の検索をするには Shift-n キーを押します。Escape を 2 回押して copy mode
を終了します。Ctrl-rで逆方向に検索することもできます。なお、tmux
ではキーボードの制御がcopy mode
になっているので、Ctrl-sはstty ixon
の設定に関係なく動作します(私はBashで順方向検索ができるようにするためにstty -ixon
にしているのが好きです)。
viキーバインド(Ctrl-b:set-window-option -g mode-keys vi
)を使用している場合は、/を押してから検索したい文字列を入力してEnterキーを押します。n キーを押すと、同じ文字列を再度検索します。emacs モードと同じように Shift-n キーを押すと逆の検索ができます。qを2回押してcopy mode
を終了します。逆方向に検索するには ?
表示されているものに基づいてウィンドウを切り替えたい場合(ウィンドウ名やタイトルも含まれますが、履歴は含まれません)、(複数のウィンドウが開いている状態から) Ctrl-b f キーを押してから、検索したい文字列を入力して Enter キーを押します。見つかった場合は、その文字列を含むウィンドウに切り替わります。複数のウィンドウが一致した場合は、その中から選択するためのリストが表示されます。
コピーモードに入って一気に検索を開始
bind-key / copy-mode \; send-key ?
は、
Ctrl + B /
と入力するだけで、検索語を入力し始めることができます。
ファイルにダンプしてvimを使う
物事がもっと複雑になると、適切なエディタを使いたくなります: https://unix.stackexchange.com/questions/26548/write-all-tmux-scrollback-to-a-file
bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer
P
バッファをファイルにダンプして、次のようにします:
vim /tmp/tmux
tmux 2.6でテストしています。