Antworten:
So suchen Sie in der tmux
Historien - Puffer für das aktuelle Fenster, drücken Sie Ctrl- b [eingeben copy mode
.
Wenn Sie emacs-Tastenzuordnungen verwenden (Standardeinstellung), drücken Sie Ctrl-, geben Sie sdie zu suchende Zeichenfolge ein und drücken Sie Enter. Drücken Sie n, um erneut nach derselben Zeichenfolge zu suchen. Drücken Sie Shift- nfür die Rückwärtssuche. Drücken Sie Escapezweimal , um zu beenden copy mode
. Sie können verwendet werden Ctrl- rin umgekehrter Richtung zu suchen. Beachten Sie, dass da die tmux
Kontrolle über die Tastatur in ist copy mode
, Ctrl- sfunktioniert, unabhängig von der stty ixon
Einstellung (die ich haben möchte stty -ixon
, um Forward-Suchen in Bash zu ermöglichen).
Wenn Sie vi-Tastenkombinationen ( Ctrl- b:set-window-option -g mode-keys vi
) verwenden, drücken Sie, geben Sie /die zu suchende Zeichenfolge ein und drücken Sie Enter. Drücken Sie n, um erneut nach derselben Zeichenfolge zu suchen. Drücken Sie Shift- nfür die Rückwärtssuche wie im Emacs-Modus. Drücken Sie qzweimal , um zu beenden copy mode
. Mit können Sie ?in umgekehrter Richtung suchen.
Wenn Sie zu einem Fenster wechseln möchten, das auf einer Anzeige basiert (dies umfasst auch Fensternamen und -titel, jedoch nicht den Verlauf), drücken Sie (beginnend mit mehr als einem geöffneten Fenster) Ctrl- und geben Sie b fdann die Zeichenfolge ein, nach der gesucht werden soll, und drücken Sie Enter. Sie werden zu einem Fenster weitergeleitet, das diesen Text enthält, wenn er gefunden wird. Wenn mehr als ein Fenster übereinstimmt, wird eine Liste angezeigt, aus der Sie auswählen können.
EDITOR
oder VISUAL
) auf den gewünschten Stil festzulegen, bevor Sie beginnen tmux
.
set-window-option -g mode-keys vi
in meinem .tmux.conf
. Aber ich war neugierig auf die umweltvariable Alternative und konnte sie nicht zum Laufen bringen. Handelt es sich um eine Shell-Umgebungsvariable oder um eine tmux-Umgebungsvariable, die in der conf-Datei festgelegt werden muss?
VISUAL=vi tmux
Aktivieren Sie den Kopiermodus und starten Sie die Suche auf einmal
bind-key / copy-mode \; send-key ?
ermöglicht es Ihnen, nur zu tun:
Ctrl + B /
und geben Sie den Suchbegriff ein.
In eine Datei ausgeben und vim verwenden
Wenn die Dinge komplizierter werden, möchte ich nur einen geeigneten Editor verwenden: 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
Nun wird P
der Puffer in eine Datei kopiert und ich führe einfach Folgendes aus:
vim /tmp/tmux
Getestet in tmux 2.6.
/tmp/tmux
)?
Sie können vim verwenden, um das Bildschirmprotokoll anzuzeigen / zu bearbeiten / zu suchen / zu speichern. Falten Sie das Protokoll bei jeder Bash-Eingabeaufforderung:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Passen Sie die Regex entsprechend Ihrer Eingabeaufforderung an. Verwenden Sie vier Backslashs für jeden Backslash in Regex.
Oder setzen Sie die vim-Funktion in ~ / .vimrc:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
Fügen Sie in ~ / .bashrc das Datum zur Eingabeaufforderung hinzu, wenn Sie viele Protokolle zum Durchsuchen haben. z.B
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
Hier ist eine Lösung, die ich gefunden habe.
Sie können auch den Zielpfad und den Dateinamen ändern:
# 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'
Nach dem erneuten Laden der tmux-Konfigurationsdatei können Sie prefix p
in meinem Fall auf drücken. Ctrl+a p
Sie können bind p
zu Ihrer bevorzugten Tastenkombination wechseln .
Zuerst funktionierte meins nicht, weil ich bind p
in einer anderen Zeile überschrieb , also habe ich das nur auskommentiert.
tmux
(tmux -V
)? Ich glaube, das wurde in Version 0.9 hinzugefügt.