題 如何在tmux shell的輸出緩衝區中進行搜索?


我不能讓這個工作。如何搜索tmux shell的緩衝區?


140
2018-01-09 16:57


起源


什麼版本的 tmux (tmux -V)?我相信這是在0.9版本中添加的。 - Dennis Williamson
@Dennis這是1.3-1 - NES
找到版本 tmux -V 僅適用於更高版本。在Ubuntu / Debian中你可以這樣做: dpkg -l | grep tmux - Niels Bom


答案:


複製模式搜索

要搜索 tmux 當前窗口的歷史緩衝區,按 按Ctrl - b  [ 進入 copy mode

如果您使用的是emacs鍵綁定(默認設置),請按 按Ctrl - 小號 然後鍵入要搜索的字符串並按 輸入。 按 ñ 再次搜索相同的字符串。 按 轉移 - ñ 用於反向搜索。 按 逃逸 兩次退出 copy mode。 您可以使用 按Ctrl - [R 以相反的方向搜索。 請注意,因為 tmux 是在控制鍵盤 copy mode按Ctrl - 小號 無論如何都有效 stty ixon 設置(我喜歡的設置) stty -ixon 在Bash中啟用前向搜索)。

如果你正在使用vi鍵綁定(按Ctrl - b:set-window-option -g mode-keys vi), 按 / 然後鍵入要搜索的字符串並按 輸入。按 ñ 再次搜索相同的字符串。按 轉移 - ñ 用於反向搜索,如emacs模式。按 q 兩次退出 copy mode。您可以使用  以相反的方向搜索。

發現窗口

如果要切換到基於其中顯示的內容的窗口(這還包括窗口名稱和標題,但不包括歷史記錄),(從打開多個窗口開始)按 按Ctrl - b  F 然後鍵入要搜索的字符串並按 輸入。如果找到,您將切換到包含該文本的窗口。如果多個窗口匹配,您將看到可供選擇的列表。


220
2018-01-10 01:56



如何設置綁定樣式? (emacs vs vi) - Daniel Que
@DanielQue:查看tmux手冊頁並蒐索“mode-keys”和“status-keys”。這些子命令允許您設置綁定樣式。或者,設置環境變量可能更簡單(EDITOR 要么 VISUAL)在開始之前你想要的風格 tmux。 - Dennis Williamson
謝謝,我得到了它 set-window-option -g mode-keys vi 在我的 .tmux.conf。但我對環境變量替代品感到好奇,無法讓它發揮作用。它是一個shell環境變量,還是必須在conf文件中設置的tmux環境變量? - Daniel Que
@DanielQue:一個shell環境變量。它需要導出或放在tmux的環境中,如下所示: VISUAL=vi tmux - Dennis Williamson
另請注意,還沒有正則表達式搜索,這是一個未解決的問題 sourceforge.net/p/tmux/tickets/9 - Elijah Lynn


進入複製模式並開始一次性搜索

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中測試過。


6
2017-09-24 04:53



如何對文件名進行此提示(因此我不需要進行硬編碼 /tmp/tmux)? - Peeyush Kushwaha
@PeeyushKushwaha對不起,但我的tmux fu不是那麼好,我必須google,如果你發現它,請告訴我。 - Ciro Santilli 新疆改造中心 六四事件 法轮功