498 votes

Comment augmenter la taille du tampon de scrollback dans tmux ?

Comment augmenter la taille de la mémoire tampon du scrollback en tmux ?

Si j'entre en mode copie, le nombre de lignes de défilement disponibles (visibles dans le coin supérieur droit) est toujours inférieur à 2000. J'ai essayé de trouver une liste de toutes les commandes tmux, mais je n'ai rien trouvé concernant la taille du scrollback. Pour tout ce que je vois le screen commande pour définir cette option ne fonctionne pas avec tmux .

Utilisation de tmux 1.8, Ubuntu 12.04 LTS, soit konsole o gnome-terminal .

619voto

Chris Johnsen Points 50064

La limite de l'historique est un attribut du volet qui est fixé au moment de la création du volet et ne peut être modifié pour les volets existants . La valeur est tirée du history-limit option de session (la valeur par défaut est 2000).

Pour créer un volet avec une valeur différente, vous devrez définir les paramètres suivants history-limit avant de créer le volet.

Pour établir une autre valeur par défaut, vous pouvez mettre une ligne comme la suivante dans votre fichier .tmux.conf fichier :

set-option -g history-limit 3000

Remarque : Faites attention à définir une valeur par défaut très importante, elle peut facilement consommer beaucoup de RAM si vous créez de nombreux volets.

Pour un nouveau volet (ou le volet initial d'une nouvelle fenêtre) dans une session existante, vous pouvez définir l'attribut history-limit . Vous pouvez utiliser une commande comme celle-ci (à partir d'un shell) :

tmux set-option history-limit 5000 \; new-window

Pour (le volet initial de la fenêtre initiale dans) une nouvelle session, vous devez définir l'option "global". history-limit avant de créer la session :

tmux set-option -g history-limit 5000 \; new-session

Remarque : Si vous ne réinitialisez pas l'option history-limit la nouvelle valeur sera également utilisée pour d'autres volets/fenêtres/sessions créés à l'avenir ; il n'existe actuellement aucun moyen direct de créer un nouveau volet/fenêtre/session avec sa propre limite spécifique sans modifier (au moins temporairement) la valeur de la limite. history-limit (bien que show-option (surtout dans les versions 1.7 et ultérieures) peut aider à récupérer la valeur actuelle afin de la restaurer plus tard).

61 votes

Si une "ligne" ne comprend que les caractères qui la composent, on peut supposer que 128 octets constituent une taille de ligne raisonnable en mémoire. Si je suis prêt à consacrer 32 Mo au défilement arrière d'un seul volet (ce qui me convient, je n'utilise pas beaucoup de volets), alors je pourrais augmenter ma limite d'historique à peu près à 2 ** (25 - 7) = 256K soit 250 000 lignes.

22 votes

J'ai fini par choisir set-option -g history-limit 50000

3 votes

Le mien ne semble monter qu'à environ 4700 même avec un nouveau panneau. tmux 1.9

61voto

f4d0 Points 461

Ouvrez le fichier de configuration de tmux avec la commande suivante :

vim ~/.tmux.conf

Dans le fichier de configuration, ajoutez la ligne suivante :

set -g history-limit 5000

Déconnectez-vous et reconnectez-vous, démarrez un nouveau tmux Windows et votre limite est maintenant de 5000.

7 votes

Il n'est pas nécessaire de se déconnecter et de se reconnecter. Vous devez simplement soit quitter le serveur tmux entièrement, ou vous assurer que vous sourcez ~/.tmux.conf dans chaque session (puis lancer de nouvelles fenêtres dans ces sessions et fermer toutes les anciennes).

1 votes

Cela ne fonctionne pas pour une limite plus petite comme 50, mais cela fonctionne bien avec 5000. tester avec seq 1 5100 et faire défiler en arrière avec ^B+PgUp

1 votes

@rubo77 c'est un excellent point et je n'étais pas au courant. Je ne l'ai pas testé car la question est d'augmenter le tampon, pas de le diminuer. Permettez-moi de vous demander pourquoi on voudrait diminuer la mémoire tampon ? Du haut de ma tête, je pense à l'optimisation et aux limitations de mémoire ?

7voto

devhen Points 51

Ceci s'appuie sur la réponse de ntc2 et de Chris Johnsen. Je l'utilise chaque fois que je veux créer une nouvelle session avec une limite d'historique personnalisée. Je voulais un moyen de créer des sessions avec un retour en arrière limité sans modifier de façon permanente la limite de l'historique pour les sessions futures.

tmux set-option -g history-limit 100 \; new-session -s mysessionname \; set-option -g history-limit 2000

Cela fonctionne qu'il y ait ou non des sessions existantes. Après avoir défini la limite d'historique pour la nouvelle session, il la réinitialise à la valeur par défaut qui, pour moi, est de 2000.

J'ai créé un exécutable bash script qui rend cela un peu plus utile. Le 1er paramètre passé au script fixe la limite d'historique pour la nouvelle session et le 2ème paramètre fixe son nom de session :

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X