Exécuter un programme dans tmux sans défilement

1

J'utilise tmux (avec zsh, si cela aide). J'ai une assez bonne configuration, mais souvent je me trouve souvent avec un programme avec beaucoup de sortie, puis en entrant en mode copie et en inversant la recherche de la ligne que j'ai tapée dans le shell pour aller au début de la sortie. Pour ce faire, je préfère utiliser moins en raison de la couleur et du fait que parfois je veux copier du texte.

Si j'exécute une commande qui, je le sais déjà, produira beaucoup de résultats, j'aimerais un moyen de l'exécuter et de passer en mode copie au début du résultat, sans avoir à taper deux fois la commande. Cela peut prendre la forme d'un moyen d'exécuter une commande et de passer en mode copie avant la sortie afin que l'écran ne défile pas, ou d'un moyen d'entrer en mode copie et de rechercher immédiatement en arrière le dernier élément de l'historique du shell. Dans la documentation tmux, je peux voir comment lier des clés en mode copie, mais il n’existe aucune documentation sur les fonctions disponibles (c’est-à-dire, pourrait-on lier une clé à 'recherche-inverse "foo"').

Benedict Singer
la source
1
less -Rconserve la coloration, mais généralement, la commande produisant la sortie doit être obligée de colorer sa sortie lorsqu'elle est connectée à un tuyau, par exemplels --color=yes | less -R
mpy
Je ne connaissais pas le drapeau -R, cela aide un peu. Je peux au moins corriger mon cas d'utilisation le plus courant, la sortie hg diff, en activant l'extension hg pager et en utilisant less -FRX comme commande de pager. Merci! Reste curieux de savoir une solution plus générale pour tmux.
Benedict Singer

Réponses:

0

généralement, pas toujours, vous pouvez vider la sortie dans un fichier. Par exemple, lorsque ma sauvegarde automatique s'exécute, elle exporte la sortie dans un fichier texte pour l'archivage. Je fais cela en utilisant tee. Un exemple de commande est:

ls | tee dumpfile

Je vois la sortie à l'écran et tout est également transféré dans dumpfile pour une lecture ultérieure. Cela peut ou peut ne pas fonctionner pour vous, selon le programme que vous utilisez.

Russell Uhl
la source
Oui, mais cela pose deux problèmes. le premier est qu'il ne fait rien pour le défilement de la sortie, et le second est que, comme moins, il perd la coloration sur le résultat.
Benedict Singer
Oublié la perte de couleur, mon mauvais. Pour ce qui est de ne pas faire défiler, je ne savais pas trop ce que vous essayiez de faire, alors je pensais qu'un fichier aurait pu aider. Je vais laisser cette réponse comme une solution pas tout à fait juste pour les personnes ayant un problème un peu similaire (Sauf si vous préférez que je le supprime)
Russell Uhl
En gros, je tape 'cat <mylargefile>' et je me retrouve avec quelques écrans de sortie et une nouvelle invite du shell. Je passe ensuite en mode copie, recherche inversée 'cat <mylargefile>' et je peux ensuite le lire depuis le début. Au lieu de cela, je veux soit a) faire <magic>, taper 'cat <mylargefile>' et faire en sorte que la sortie ne défile pas tant que je ne le souhaite pas, ou b) taper 'cat <mylargefile>', cliquer sur un raccourci clavier personnalisé et terminer en mode copie avec la recherche inversée déjà effectuée.
Benedict Singer
@BenedictSinger fait-il lessce qu'il vous faut? cat file | less. Ce n'est pas interactif, mais vous pouvez faire défiler la sortie à votre guise si vous cherchez visuellement quelque chose
Russell Uhl