Qual versão do tmux( tmux -V)? Eu acredito que isso foi adicionado na versão 0.9.
Dennis Williamson
@Dennis it's 1.3-1
NES
1
Encontrar a versão com tmux -Vfunciona apenas em versões posteriores. No Ubuntu / Debian você pode fazer: dpkg -l | grep tmux
Niels Bom
Respostas:
275
pesquisa no modo de cópia
Para procurar no tmuxbuffer do histórico a janela atual, pressione Ctrl- b[para entrar copy mode.
Se você estiver usando as combinações de teclas emacs (o padrão), pressione Ctrl- se digite a string a ser pesquisada e pressione Enter. Pressione npara procurar a mesma sequência novamente. Pressione Shift- npara pesquisa reversa. Pressione Escapeduas vezes para sair copy mode. Você pode usar Ctrl- rpara pesquisar na direção inversa. Observe que, uma vez que tmuxestá no controle do teclado copy mode, Ctrl- sfunciona independentemente da stty ixonconfiguração (que eu gosto de ter stty -ixonpara ativar as pesquisas avançadas no Bash).
Se você estiver usando as combinações de teclas vi ( Ctrl- b:set-window-option -g mode-keys vi), pressione /e digite a sequência a ser pesquisada e pressione Enter. Pressione npara procurar a mesma sequência novamente. Pressione Shift- npara pesquisa reversa como no modo emacs. Pressione qduas vezes para sair copy mode. Você pode usar ?para pesquisar na direção inversa.
encontrar-janela
Se você deseja alternar para uma janela com base em algo exibido nela (isso também inclui nomes e títulos de janelas, mas não histórico), (começando com mais de uma janela aberta), pressione Ctrl- bfe digite a sequência a ser pesquisada e pressionada Enter. Você será alternado para uma janela que contém esse texto, se ele for encontrado. Se mais de uma janela corresponder, você verá uma lista para selecionar.
Como posso definir o estilo de encadernação? (emacs vs vi)
Daniel Que
2
@DanielQue: Dê uma olhada na página de manual do tmux e procure por "mode-keys" e "status-keys". Esses são subcomandos que permitem definir o estilo de encadernação. Como alternativa, pode ser mais simples definir uma variável de ambiente ( EDITORou VISUAL) para o estilo desejado antes de iniciar tmux.
Dennis Williamson
6
Obrigado, eu consegui trabalhar com isso set-window-option -g mode-keys vino meu .tmux.conf. Mas eu estava curioso sobre a alternativa da variável de ambiente e não consegui fazê-la funcionar. É uma variável de ambiente do shell ou uma variável de ambiente tmux que deve ser configurada no arquivo conf?
Daniel Que
2
@DanielQue: uma variável de ambiente do shell. Ele terá de ser exportado ou colocado em envrionment de tmux assim:VISUAL=vi tmux
Você também pode modificar o caminho de destino e o nome do arquivo:
# Save screen content to file
bind p command-prompt -p 'Save history to:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
Após recarregar o arquivo de configuração do tmux, você pode pressionar prefix pno meu caso. Ctrl+a p
Você pode mudar bind ppara a combinação de teclas preferida.
O primeiro meu não estava funcionando porque eu estava substituindo bind pem outra linha, então apenas comentei isso.
tmux
(tmux -V
)? Eu acredito que isso foi adicionado na versão 0.9.tmux -V
funciona apenas em versões posteriores. No Ubuntu / Debian você pode fazer:dpkg -l | grep tmux
Respostas:
pesquisa no modo de cópia
Para procurar no
tmux
buffer do histórico a janela atual, pressione Ctrl- b [para entrarcopy mode
.Se você estiver usando as combinações de teclas emacs (o padrão), pressione Ctrl- se digite a string a ser pesquisada e pressione Enter. Pressione npara procurar a mesma sequência novamente. Pressione Shift- npara pesquisa reversa. Pressione Escapeduas vezes para sair
copy mode
. Você pode usar Ctrl- rpara pesquisar na direção inversa. Observe que, uma vez quetmux
está no controle do tecladocopy mode
, Ctrl- sfunciona independentemente dastty ixon
configuração (que eu gosto de terstty -ixon
para ativar as pesquisas avançadas no Bash).Se você estiver usando as combinações de teclas vi ( Ctrl- b
:set-window-option -g mode-keys vi
), pressione /e digite a sequência a ser pesquisada e pressione Enter. Pressione npara procurar a mesma sequência novamente. Pressione Shift- npara pesquisa reversa como no modo emacs. Pressione qduas vezes para saircopy mode
. Você pode usar ?para pesquisar na direção inversa.encontrar-janela
Se você deseja alternar para uma janela com base em algo exibido nela (isso também inclui nomes e títulos de janelas, mas não histórico), (começando com mais de uma janela aberta), pressione Ctrl- b fe digite a sequência a ser pesquisada e pressionada Enter. Você será alternado para uma janela que contém esse texto, se ele for encontrado. Se mais de uma janela corresponder, você verá uma lista para selecionar.
fonte
EDITOR
ouVISUAL
) para o estilo desejado antes de iniciartmux
.set-window-option -g mode-keys vi
no meu.tmux.conf
. Mas eu estava curioso sobre a alternativa da variável de ambiente e não consegui fazê-la funcionar. É uma variável de ambiente do shell ou uma variável de ambiente tmux que deve ser configurada no arquivo conf?VISUAL=vi tmux
Entre no modo de cópia e comece a pesquisar de uma só vez
permite que você faça exatamente:
e comece a digitar o termo de pesquisa.
Despejar em um arquivo e usar 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
Agora
P
despeja o buffer em um arquivo, e então eu apenas:Testado no tmux 2.6.
fonte
/tmp/tmux
)?Você pode usar o vim para visualizar / editar / pesquisar / salvar o log de tela, dobre o log em cada prompt do bash:
Ajuste a regex de acordo com o seu prompt, use quatro barras invertidas para cada barra invertida no regex.
Ou coloque a função vim em ~ / .vimrc:
E em ~ / .bashrc, adicione data ao prompt, se você tiver muitos logs para pesquisar. por exemplo
fonte
Aqui está uma solução que encontrei.
Você também pode modificar o caminho de destino e o nome do arquivo:
Após recarregar o arquivo de configuração do tmux, você pode pressionar
prefix p
no meu caso.Ctrl+a p
Você pode mudarbind p
para a combinação de teclas preferida.O primeiro meu não estava funcionando porque eu estava substituindo
bind p
em outra linha, então apenas comentei isso.fonte