Questão Como posso pesquisar no buffer de saída de um shell tmux?


Eu não consigo fazer isso funcionar. Como posso pesquisar o buffer de um shell tmux?


135


origem


Qual versão do tmux (tmux -V)? Eu acredito que isso foi adicionado na versão 0.9. - Dennis Williamson
@Dennis é 1,3-1 - NES
Encontrar a versão com tmux -V funciona apenas em versões posteriores. No Ubuntu / Debian você pode fazer: dpkg -l | grep tmux - Niels Bom


Respostas:


pesquisa no modo de cópia

Para pesquisar no tmux histórico da janela atual, pressione Ctrl-b  [ entrar copy mode.

Se você estiver usando as teclas de atalho do emacs (o padrão), pressione Ctrl-s em seguida, digite a string para procurar e pressione Entrar. pressione n para procurar a mesma string novamente. pressione Escapar duas vezes para sair copy mode. Você pode usar Ctrl-r para pesquisar na direção inversa. Note que desde tmux está no controle do teclado em copy mode, Ctrl-s funciona independentemente do stty ixon definição (que eu gosto de ter como stty -ixon para permitir buscas diretas no Bash).

Se você estiver usando o vi key bindings (Ctrl-b:set-window-option -g mode-keys vi), pressione / em seguida, digite a string para procurar e pressione Entrar. pressione n para procurar a mesma string novamente. pressione q duas vezes para sair copy mode. Você pode usar ? para pesquisar na direção inversa.

encontrar janela

Se você quiser mudar para uma janela com base em algo exibido nela (isso também inclui nomes e títulos de janela, mas não histórico), (começando com mais de uma janela aberta) pressione Ctrl-b  f em seguida, digite a string para procurar e pressione Entrar. Você será transferido para uma janela contendo esse texto, se for encontrado. Se mais de uma janela corresponder, você verá uma lista para selecionar.


212



Como posso definir o estilo de ligação? (emacs vs vi) - Daniel Que
@DanielQue: Dê uma olhada na man page do tmux e procure por "mode-keys" e "status-keys". Esses são subcomandos que permitem definir o estilo de ligação. Como alternativa, pode ser mais simples definir uma variável de ambiente (EDITOR ou VISUAL) para o estilo que você quer antes de começar tmux. - Dennis Williamson
Obrigado, eu tenho que trabalhar com set-window-option -g mode-keys vi no meu .tmux.conf. Mas eu estava curioso sobre a alternativa de variável de ambiente e não consegui fazê-la funcionar. É uma variável de ambiente shell ou uma variável de ambiente tmux que precisa ser definida no arquivo conf? - Daniel Que
@DanielQue: Uma variável de ambiente shell. Ele precisará ser exportado ou colocado no ambiente do tmux assim: VISUAL=vi tmux - Dennis Williamson
Observe também que ainda não há pesquisa de regex, aqui está um problema em aberto sourceforge.net/p/tmux/tickets/9 - Elijah Lynn


Entre no modo de cópia e comece a pesquisar de uma só vez

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

permite que você faça apenas:

 Ctrl + B /

e comece a digitar o termo de pesquisa.

Despeje em um arquivo e use o vim

Quando as coisas ficam mais envolvidas, eu só quero usar um editor adequado: 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

Agora P despeja o buffer para um arquivo e, em seguida, eu apenas:

vim /tmp/tmux

Testado no tmux 2.6.


6