Je n'arrive pas à le faire fonctionner. Comment puis-je rechercher dans le buffer d'un tmux Shell ?
Comment puis-je définir le style de reliure ? (emacs vs vi)
Je n'arrive pas à le faire fonctionner. Comment puis-je rechercher dans le buffer d'un tmux Shell ?
Pour effectuer une recherche dans le tmux
tampon d'histoire pour la fenêtre actuelle, appuyez sur Ctrl - b [ pour entrer copy mode
.
Si vous utilisez des liaisons de touches emacs (par défaut), appuyez sur Ctrl - s puis tapez la chaîne à rechercher et appuyez sur Enter . Appuyez sur n pour rechercher à nouveau la même chaîne. Appuyez sur Shift - n pour la recherche inverse. Appuyez sur Escape deux fois pour quitter copy mode
. Vous pouvez utiliser Ctrl - r pour effectuer une recherche dans le sens inverse. Notez que, puisque tmux
est en charge du clavier dans copy mode
, Ctrl - s fonctionne indépendamment de la stty ixon
(que j'aime avoir comme stty -ixon
pour activer les recherches en avant dans Bash).
Si vous utilisez des liaisons de touches vi ( Ctrl - b:set-window-option -g mode-keys vi
), appuyez sur / puis tapez la chaîne à rechercher et appuyez sur Enter . Appuyez sur n pour rechercher à nouveau la même chaîne. Appuyez sur Shift - n pour une recherche inverse comme en mode emacs. Appuyez sur q deux fois pour quitter copy mode
. Vous pouvez utiliser ? pour effectuer une recherche dans le sens inverse.
Si vous voulez passer à une fenêtre en fonction de quelque chose qui y est affiché (cela inclut également les noms et les titres des fenêtres, mais pas l'historique), (en commençant avec plus d'une fenêtre ouverte) appuyez sur Ctrl - b f puis tapez la chaîne à rechercher et appuyez sur Enter . Vous passerez à une fenêtre contenant ce texte s'il est trouvé. Si plusieurs fenêtres correspondent, vous verrez une liste dans laquelle vous pourrez faire votre choix.
@DanielQue : Jetez un coup d'œil à la page de manuel de tmux et cherchez "mode-keys" et "status-keys". Ce sont des sous-commandes qui vous permettent de définir le style de liaison. Alternativement, il pourrait être plus simple de définir une variable d'environnement ( EDITOR
o VISUAL
) au style que vous souhaitez avant de lancer tmux
.
Merci, j'ai réussi à le faire fonctionner avec set-window-option -g mode-keys vi
dans mon .tmux.conf
. Mais j'étais curieux de l'alternative de la variable d'environnement et je n'ai pas réussi à la faire fonctionner. Est-ce une variable d'environnement Shell, ou une variable d'environnement tmux qui doit être définie dans le fichier conf ?
Passez en mode copie et commencez à chercher en une seule fois
bind-key / copy-mode \; send-key ?
vous permet de le faire :
Ctrl + B /
et commencez à taper le terme recherché, qui sera recherché vers le haut (les dernières lignes en premier).
Dump dans un fichier et utiliser vim
Quand les choses deviennent plus complexes, je veux juste utiliser un bon éditeur : 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
Maintenant P
vide la mémoire tampon dans un fichier, et ensuite je.. :
vim /tmp/tmux
Nous pouvons automatiser encore plus les choses en ouvrant automatiquement vim également. comme suggéré par pkfm :
bind-key v 'capture-pane' \; \
capture-pane -S - \; \
save-buffer /tmp/tmux \; \
delete-buffer \; \
send-keys Escape 'ddivim /tmp/tmux' Enter
Cela suppose que votre Shell est en mode vi de sorte que :
dd
efface toute commande existantei
passe en mode insertionvim /tmp/tmux
Testé dans tmux 3.0.
Comment faire pour que le nom du fichier soit demandé (pour ne pas avoir à coder en dur) ? /tmp/tmux
) ?
@PeeyushKushwaha désolé mais mon tmux fu n'est pas si bon, je devrais aller sur google, faites moi savoir si vous trouvez.
Aller plus loin et intégrer le vim
dans le cadre de la tmux
lier et automatiser une recherche à rebours depuis le bas du fichier pour la dernière invite Shell afin de revenir à la dernière commande : bind-key V 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer \; send-keys Escape 'ivim "+normal G" +"?^> " /tmp/tmux' Enter
. ici, PS1
es >
. notez l'espace de fin de ligne, ainsi que l'élément i
avant vim
pour entrer dans le mode insertion où le Shell utilise vi
les fixations. changez en fonction de vos besoins.
Vous pouvez utiliser vim pour afficher/éditer/rechercher/sauvegarder le journal de l'écran, plier le journal à chaque invite bash :
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Ajustez la regex en fonction de votre invite, utilisez quatre backslash pour chaque backslash dans la regex.
Ou mettez la fonction vim dans ~/.vimrc :
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
Et dans ~/.bashrc, ajoutez la date à l'invite, si vous avez beaucoup de journaux à parcourir, par exemple
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
Voici une solution que j'ai trouvée.
Vous pouvez également modifier le chemin et le nom du fichier cible :
# 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'
Après avoir rechargé le fichier de configuration tmux, vous pouvez appuyer sur prefix p
dans mon cas Ctrl+a p
Vous pouvez modifier bind p
à votre combinaison de touches préférée.
D'abord, le mien ne fonctionnait pas parce que j'écrasais bind p
dans une autre ligne, alors je l'ai juste commenté.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
1 votes
Quelle version de
tmux
(tmux -V
) ? Je crois que cela a été ajouté dans la version 0.9.0 votes
@Dennis c'est 1.3-1
1 votes
Trouver la version avec
tmux -V
ne fonctionne que dans les versions ultérieures. Dans Ubuntu/Debian vous pouvez faire :dpkg -l | grep tmux
0 votes
Je ne sais pas pourquoi, mais ces réponses ne fonctionnent pas pour moi alors que
CTRL+B
PgUp
CTRL+B
R
my searchterm
travaux