要在tmux
历史缓冲区中搜索当前窗口,按Ctrl-b [ 输入copy mode
。
如果你使用的是emacs键绑定(默认),按Ctrl-s键,然后输入要搜索的字符串,按Enter键。按n键可以再次搜索相同的字符串。按 Shift-n 进行反向搜索。按两次 Escape 键退出 copy mode
。你可以使用Ctrl-r进行反方向搜索。需要注意的是,由于tmux
是在copy mode
中控制键盘的,所以无论stty ixon
如何设置,Ctrl-s都可以使用(我喜欢用stty -ixon
来实现Bash中的正向搜索)。
如果你使用的是vi键绑定(Ctrl-b:set-window-option -g mode-keys vi
),按/然后输入要搜索的字符串,按Enter键。按n键可以再次搜索相同的字符串。按Shift-n键进行反向搜索,就像在emacs模式下一样。按 q 两次退出 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中测试。