Comment augmenter la taille du tampon de défilement dans tmux?


328

Comment augmenter la taille de la mémoire tampon de défilement dans tmux?

Si j'entre en mode copie, le nombre de lignes de défilement disponibles (visible 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 ne trouve rien sur la taille du défilement. Pour tout ce que je vois, la screencommande pour définir cette option ne fonctionne pas tmux.

En utilisant tmux1.8, Ubuntu 12.04 LTS, soit konsoleou gnome-terminal.

Réponses:


428

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

Pour créer un volet avec une valeur différente, vous devrez définir l' history-limitoption appropriée avant de créer le volet.

Pour établir une valeur par défaut différente, vous pouvez mettre une ligne comme celle-ci dans votre .tmux.conffichier:

set-option -g history-limit 3000

Remarque: Soyez prudent en définissant une très grande valeur par défaut, cela peut facilement consommer beaucoup de RAM si vous créez plusieurs volets.

Pour un nouveau volet (ou le volet initial dans une nouvelle fenêtre) dans une session existante, vous pouvez définir cette session 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 devrez définir le «global» history-limitavant de créer la session:

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

Remarque: Si vous ne réinitialisez pas la history-limitvaleur, 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 seul nouveau volet / fenêtre / session avec sa propre limite spécifique sans (au moins temporairement) changer history-limit(bien que show-option(en particulier dans 1.7 et versions ultérieures) puisse aider à récupérer la valeur actuelle afin de la restaurer plus tard ).


26
Si une "ligne" n'est vraiment que les caractères qu'elle contient, alors nous pouvons supposer que 128 octets est une taille de ligne raisonnable en mémoire. Si je suis prêt à engager 32 Mo pour revenir en arrière pour un seul volet (ce qui me convient, je n'utilise pas beaucoup de volets), je pourrais augmenter ma limite d'historique à environ 2 ** (25 - 7) = 256K250 000 lignes.
phs

8
J'ai fini par m'installerset-option -g history-limit 50000
phs

2
le mien ne semble monter que vers 4700 .. même si un nouveau volet. tmux 1.9
wuxmedia

4
Pour ceux d'entre vous qui ne savent pas où trouver le fichier .tmux.conf, vous pouvez simplement créer un nouveau fichier dans ~ / .tmux.conf, puis ajouter cette seule ligne dans le fichier set-option -g history-limit 50000
C.Lee

1
Un petit accroc dans lequel je suis tombé. Toutes les sessions tmux doivent être fermées pour que cette modification prenne effet. Venant de l'écran GNU, j'ai supposé que chaque nouvelle session d'écran source le ~ / .tmux.conf mais ce n'est pas le cas. Ce n'est que lorsque toutes les sessions tmux sont fermées et qu'une nouvelle est ouverte que la modification du fichier ~ / .tmux.conf a un effet.
rudolph9

24

Ouvrez le fichier de configuration 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 une nouvelle fenêtre tmux et votre limite est maintenant de 5000.


3
Il n'est pas nécessaire de vous déconnecter et de vous connecter. Il vous suffit de quitter le serveur tmux entièrement ou de vous assurer que vous vous approvisionnez ~/.tmux.confdans chaque session (puis lancez de nouvelles fenêtres dans ces sessions et fermez toutes les anciennes fenêtres).
henrebotha

3

Cela s'appuie sur ntc2 et la réponse de Chris Johnsen. J'utilise ceci 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 défilement limité sans changer définitivement ma limite d'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 existe ou non des sessions existantes. Après avoir défini l'historique-limite pour la nouvelle session, il la réinitialise à la valeur par défaut qui est pour moi 2000.

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

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.