Non riesco a farlo funzionare. Come posso cercare il buffer di una shell tmux?
tmux -V
funziona 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 -V
funziona solo nelle versioni successive. In Ubuntu / Debian puoi fare: dpkg -l | grep tmux
Risposte:
Per cercare nel tmux
buffer 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 tmux
controllo della tastiera in copy mode
, Ctrl- sfunziona indipendentemente stty ixon
dall'impostazione (che mi piace avere stty -ixon
per 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.
EDITOR
o VISUAL
) sullo stile desiderato prima di iniziare tmux
.
set-window-option -g mode-keys vi
mio .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 P
scarica 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 p
nel mio caso Ctrl+a p
È possibile passare bind p
alla combinazione di tasti preferita.
La mia prima non funzionava perché sovrascrivevo bind p
in un'altra riga, quindi l'ho solo commentato.
tmux
(tmux -V
)? Credo che questo sia stato aggiunto nella versione 0.9.