Non riesco a farlo funzionare. Come posso cercare il buffer di una shell tmux?
tmux -Vfunziona solo nelle versioni successive. In Ubuntu / Debian puoi fare: dpkg -l | grep tmux
Non riesco a farlo funzionare. Come posso cercare il buffer di una shell tmux?
tmux -Vfunziona solo nelle versioni successive. In Ubuntu / Debian puoi fare: dpkg -l | grep tmux
Risposte:
Per cercare nel tmuxbuffer della cronologia la finestra corrente, premere Ctrl- b [per accedere copy mode.
Se stai usando le associazioni dei tasti emacs (impostazione predefinita), premi Ctrl- squindi digita la stringa da cercare e premi Enter. Premere nper cercare nuovamente la stessa stringa. Premere Shift- nper la ricerca inversa. Premere Escapedue volte per uscire copy mode. Puoi usare Ctrl- rper cercare nella direzione opposta. Si noti che poiché ha il tmuxcontrollo della tastiera in copy mode, Ctrl- sfunziona indipendentemente stty ixondall'impostazione (che mi piace avere stty -ixonper abilitare le ricerche in avanti in Bash).
Se si utilizzano i tasti di associazione vi ( Ctrl- b:set-window-option -g mode-keys vi), premere, /quindi digitare la stringa da cercare e premere Enter. Premere nper cercare nuovamente la stessa stringa. Premere Shift- nper la ricerca inversa come in modalità emacs. Premere qdue volte per uscire copy mode. Puoi usare ?per cercare nella direzione opposta.
Se vuoi passare a una finestra in base a qualcosa visualizzato in essa (questo include anche nomi e titoli di finestre ma non cronologia), (a partire da più di una finestra aperta) premi Ctrl- b fquindi digita la stringa da cercare e premi Enter. Passerai a una finestra contenente quel testo se viene trovato. Se più di una finestra corrisponde, verrà visualizzato un elenco tra cui selezionare.
EDITORo VISUAL) sullo stile desiderato prima di iniziare tmux.
set-window-option -g mode-keys vimio .tmux.conf. Ma ero curioso dell'alternativa alla variabile d'ambiente e non riuscivo a farlo funzionare. È una variabile di ambiente shell o una variabile di ambiente tmux che deve essere impostata nel file conf?
VISUAL=vi tmux
Entra in modalità copia e inizia la ricerca in una volta sola
bind-key / copy-mode \; send-key ?
ti permette di fare solo:
Ctrl + B /
e inizia a digitare il termine di ricerca.
Scarica in un file e usa vim
Quando le cose diventano più coinvolte, voglio solo usare un editor appropriato: 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
Ora Pscarica il buffer su un file, e poi solo:
vim /tmp/tmux
Testato in tmux 2.6.
/tmp/tmux)?
Puoi usare vim per visualizzare / modificare / cercare / salvare il registro dello schermo, piegare il registro ad ogni prompt di bash:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Regola regex in base al tuo prompt, usa quattro barre rovesciate per ogni barra rovesciata in regex.
O metti la funzione vim in ~ / .vimrc:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
E in ~ / .bashrc aggiungi la data al prompt, se hai molti log da cercare. per esempio
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
Ecco una soluzione che ho trovato.
Puoi anche modificare il percorso e il nome file di destinazione:
# 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'
Dopo aver ricaricato il file tmux config, è possibile premere prefix pnel mio caso Ctrl+a p
È possibile passare bind palla combinazione di tasti preferita.
La mia prima non funzionava perché sovrascrivevo bind pin un'altra riga, quindi l'ho solo commentato.
tmux(tmux -V)? Credo che questo sia stato aggiunto nella versione 0.9.