147

I can't get this to work. How can I search the buffer of a tmux shell?

  • 1
    What version of tmux (tmux -V)? I believe this was added in version 0.9. – Dennis Williamson Jan 9 '11 at 20:43
  • @Dennis it's 1.3-1 – NES Jan 9 '11 at 21:08
  • 1
    Finding the version with tmux -V works only in later versions. In Ubuntu/Debian you can do: dpkg -l | grep tmux – Niels Bom Oct 4 '12 at 11:46
231

copy mode search

To search in the tmux history buffer for the current window, press Ctrl-b [ to enter copy mode.

If you're using emacs key bindings (the default), press Ctrl-s then type the string to search for and press Enter. Press n to search for the same string again. Press Shift-n for reverse search. Press Escape twice to exit copy mode. You can use Ctrl-r to search in the reverse direction. Note that since tmux is in control of the keyboard in copy mode, Ctrl-s works regardless of the stty ixon setting (which I like to have as stty -ixon to enable forward searches in Bash).

If you're using vi key bindings (Ctrl-b:set-window-option -g mode-keys vi), press / then type the string to search for and press Enter. Press n to search for the same string again. Press Shift-n for reverse search as in emacs mode. Press q twice to exit copy mode. You can use ? to search in the reverse direction.

find-window

If you want to switch to a window based on something displayed in it (this also includes window names and titles but not history), (starting with more than one window open) press Ctrl-b f then type the string to search for and press Enter. You will be switched to a window containing that text if it's found. If more than one window matches, you'll see a list to select from.

  • 3
    How can I set the binding style? (emacs vs vi) – Daniel Que Aug 12 '14 at 22:39
  • 2
    @DanielQue: Take a look at the tmux man page and search for "mode-keys" and "status-keys". Those are sub-commands that allow you to set the binding style. Alternately, it might be simpler to set an environment variable (EDITOR or VISUAL) to the style you want before starting tmux. – Dennis Williamson Aug 12 '14 at 22:55
  • 6
    Thanks, I got it to work with set-window-option -g mode-keys vi in my .tmux.conf. But I was curious about the environment variable alternative and couldn't get it to work. Is it a shell environment variable, or a tmux environment variable that has to be set in the conf file? – Daniel Que Aug 12 '14 at 23:38
  • 2
    @DanielQue: A shell environment variable. It will need to be exported or placed in tmux's envrionment like this: VISUAL=vi tmux – Dennis Williamson Aug 13 '14 at 4:54
  • 1
    Also note that there is no regex search yet, here is an open issue on it sourceforge.net/p/tmux/tickets/9 – Elijah Lynn Oct 28 '14 at 20:58
7

Enter copy mode and start searching in one go

bind-key / copy-mode \; send-key ?

allows you to do just:

 Ctrl + B /

and start typing the search term.

Dump to a file and use vim

When things get more involved, I just want to use a proper editor: 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

Now P dumps the buffer to a file, and then I just:

vim /tmp/tmux

Tested in tmux 2.6.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.