Respuestas:
Para buscar en el tmux
búfer de historial la ventana actual, presione Ctrl- b [para ingresar copy mode
.
Si está utilizando las combinaciones de teclas de emacs (el valor predeterminado), presione Ctrl- sluego escriba la cadena para buscar y presione Enter. Presione npara buscar la misma cadena nuevamente. Presione Shift- npara la búsqueda inversa. Presione Escapedos veces para salir copy mode
. Puede usar Ctrl- rpara buscar en la dirección inversa. Tenga en cuenta que ya tmux
tiene el control del teclado en copy mode
, Ctrl- sfunciona independientemente de la stty ixon
configuración (que me gustaría tener como stty -ixon
para permitir búsquedas hacia adelante en Bash).
Si está utilizando las combinaciones de teclas vi ( Ctrl- b:set-window-option -g mode-keys vi
), presione, /luego escriba la cadena para buscar y presione Enter. Presione npara buscar la misma cadena nuevamente. Presione Shift- npara la búsqueda inversa como en el modo emacs. Presione qdos veces para salir copy mode
. Puede usar ?para buscar en la dirección inversa.
Si desea cambiar a una ventana basada en algo que se muestra en ella (esto también incluye los nombres y títulos de las ventanas pero no el historial), (comenzando con más de una ventana abierta) presione Ctrl- b fluego escriba la cadena para buscar y presione Enter. Se lo cambiará a una ventana que contiene ese texto si se encuentra. Si coincide más de una ventana, verá una lista para seleccionar.
EDITOR
o VISUAL
) al estilo que desee antes de comenzar tmux
.
set-window-option -g mode-keys vi
en mi .tmux.conf
. Pero tenía curiosidad sobre la alternativa variable de entorno y no pude hacer que funcionara. ¿Es una variable de entorno de shell, o una variable de entorno tmux que debe establecerse en el archivo conf?
VISUAL=vi tmux
Ingrese al modo de copia y comience a buscar de una vez
bind-key / copy-mode \; send-key ?
le permite hacer solo:
Ctrl + B /
y comienza a escribir el término de búsqueda.
Volcar a un archivo y usar vim
Cuando las cosas se involucran más, solo quiero usar un editor apropiado: 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
Ahora P
volca el búfer en un archivo, y luego simplemente:
vim /tmp/tmux
Probado en tmux 2.6.
/tmp/tmux
)?
Puede usar vim para ver / editar / buscar / guardar el registro de pantalla, doble el registro en cada solicitud de bash:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Ajuste la expresión regular según su solicitud, use cuatro barras invertidas para cada barra invertida en expresiones regulares.
O ponga la función vim en ~ / .vimrc:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
Y en ~ / .bashrc agregue la fecha a la solicitud, si tiene muchos registros para buscar. p.ej
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
Aquí hay una solución que encontré.
También puede modificar la ruta de destino y el nombre de archivo:
# 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'
Después de volver a cargar el archivo de configuración tmux, puede presionar prefix p
en mi caso Ctrl+a p
. Puede cambiar bind p
a su combinación de teclas preferida.
Primero, el mío no funcionaba porque estaba sobrescribiendo bind p
en otra línea, así que solo comenté eso.
tmux
(tmux -V
)? Creo que esto se agregó en la versión 0.9.