Comment augmenter le tampon de défilement dans une session d'écran en cours?

237

Disons que j'ai une session d' écran en cours d'exécution avec laquelle j'interagis via le mastic. J'ai réalisé que le tampon de défilement est trop petit et je voudrais l'augmenter sans démarrer une nouvelle session d'écran.

Y a-t-il un moyen de faire cela?

Zach
la source
Juste au cas où quelqu'un voudrait augmenter le tampon de défilement lors du démarrage d'une nouvelle session:screen -h <numlines>
Scz

Réponses:

180

La page de manuel explique que vous pouvez entrer en mode ligne de commande dans une session en cours d' exécution en tapant Ctrl+ A, :, émission alors la scrollback <num>commande.

Frédéric Hamidi
la source
4
Vous devrez faire pour chaque fenêtre de l'écran actuel individuellement.
Matthew Wilcoxson
2
<num>est le nombre de lignes de défilement
rakslice
Si vous trouvez que vous atteignez le tampon max par défaut ne peut pas afficher plus d'historique, et que le réglage par scrollback <num>, cela ne vous aide plus à étendre le tampon, vous avez besoin de refaire la dernière commande pour obtenir tout le tampon d'historique.
Kamil
362

Appuyez sur Ctrl-apuis sur :puis tapez

scrollback 10000

pour obtenir un tampon de 10000 lignes, par exemple.

Vous pouvez également définir le nombre par défaut de lignes de défilement en ajoutant

defscrollback 10000

à votre ~/.screenrcdossier.

Pour faire défiler (si votre terminal ne vous le permet pas par défaut), appuyez sur Ctrl-a ESCpuis faites défiler (avec l'habituel Ctrl-fpour la page suivante ou Ctrl-apour la page précédente, ou tout simplement avec la molette de votre souris / deux doigts). Pour quitter le mode de défilement, appuyez simplement sur ESC.

Une autre astuce: Ctrl-a iaffiche votre paramètre de tampon actuel.

Lee Netherton
la source
9
+1 pour l'indice avec le defscrollback qui est défini sur 1024 dans Ubuntu 12.10 (que je dois utiliser au travail).
erik
2
byobu-screensur Ubuntu 12.04 semble définir le defscrollback à 10000
chronospoon
4
Je voulais souligner que si votre screenrc ouvre des conditions supplémentaires pour vous, vous devez mettre le defscrollback avant que les fenêtres ne soient ouvertes, sinon ils obtiendront simplement la 1024 par défaut
majikman
ça ne marche pas sur un mac. J'ai mis startup_message off' and 'defscrollback 5000' into my newly created ~ / .screenrc` et il obtient la première ligne, mais la seconde semble être ignorée.
Ben
9

Il y a une quantité minimale de tampon "par défaut" lorsque vous démarrez une session "écran" dans votre "session de mastic". J'utilise beaucoup d'écrans dans mon travail, donc je peux vous dire que vous n'aurez pas une combinaison de tampon «écran» et de tampon «mastic» dans votre session «écran».

La définition du nombre par défaut de lignes de défilement en ajoutant defscrollback 10000 à votre ~/.screenrcfichier est la bonne solution.

Soit dit en passant, j'utilise "defscrollback 200000" dans mon ./screenrcfichier.

Oracle DBA 2000 bc
la source
4

Comme déjà mentionné, nous avons deux façons!

 Paramètre interactif par écran (session)

Et cela se fait de manière interactive! Et prenez effet immédiatement!

CTRL + Asuivi de :Et nous tapons scrollback 1000000Et frapponsENTER

Vous vous détachez de l'écran et revenez! Ce sera toujours pareil.

Vous ouvrez un autre nouvel écran! Et la valeur est réinitialisée à nouveau par défaut! Ce n'est donc pas un cadre mondial!

 Et le paramètre par défaut permanent

Ce qui se fait en ajoutant defscrollback 1000000à .screenrc(à la maison)

defscrollbacket non scrollback(def signifie défaut)

Ce que vous devez savoir, c'est si le fichier n'est pas créé! Vous le créez !

> cd ~ && vim .screenrc

Et vous y ajoutez defscrollback 1000000!

Ou en une seule commande

> echo "defscrollback 1000000" >> .screenrc

(si pas déjà créé)

Prise d'effet

Lorsque vous ajoutez la valeur par défaut à .screenrc! L'écran déjà en cours d'exécution lors de la reconnexion ne prendra pas effet! La .screenrccourse à la création d'écran! Et cela a du sens! Tout comme avec un lancement normal de console et de shell!

Et tous les nouveaux écrans créés auront la valeur définie!

Vérification de la taille effective de la mémoire tampon de l'écran

Pour vérifier le type CTRL + Asuivi dei

Et le résultat sera aussi

entrez la description de l'image ici

Il est important que la taille de la mémoire tampon soit le nombre après le signe +
(dans l'illustration, je l'ai défini sur 1 000 000)

Notez également que lorsque vous le modifiez de manière interactive! L'effet est immédiat et reprend la valeur par défaut!

Défilement

CTRL+ Asuivi de ESC(pour passer en mode copie).

Naviguez ensuite avec Up, DownouPgUp PgDown

Et ESCencore une fois pour quitter ce mode.

(Info supplémentaire: pour copier cliquez ENTERpour commencer à sélectionner! Puis à ENTERnouveau pour copier! Simple et cool)

Maintenant, le tampon est plus grand!

Et c'est tout pour les détails importants!

Mohamed Allal
la source
Super de savoir comment faire défiler!
skytree
Merci. appris une nouvelle astuce pour vérifier la taille du tampon d'écran en utilisant: CTRL + A suivi de i
alphaGeek
3

AVERTISSEMENT: la définition de cette valeur trop élevée peut entraîner un hoquet important sur votre système. Plus la valeur que vous définissez est élevée, plus la mémoire virtuelle est allouée au processus d'écran lors du lancement de la session d'écran. J'ai défini mon ~ / .screenrc sur "defscrollback 123456789" et lorsque j'ai lancé un écran, tout mon système a gelé pendant 10 bonnes minutes avant de revenir au point où j'ai pu tuer le processus d'écran (qui consommait 16,6 Go). de VIRT mem d'ici là).

1GLENCo
la source
-3

Pour la postérité, cette réponse est incorrecte comme l'a noté Steven Lu. Laissant cependant le texte original.

Réponse originale:

À ceux qui arrivent via la recherche sur le Web (plusieurs années plus tard) ...

Lorsque vous utilisez l'écran, votre tampon de défilement est une combinaison à la fois du screentampon de défilement comme l'ont noté les deux réponses précédentes, ainsi que de votre tampon de défilement de mastic.

Assurez-vous que vous augmentez à la fois le tampon de défilement du mastic ainsi que le tampon de défilement de l'écran, sinon votre fenêtre de mastic ne vous permettra pas de revenir en arrière pour voir l' screenhistorique de défilement de votre (surmonté en faisant défiler l'écran avec ctrl+a->ctrl+u)

Vous pouvez modifier votre limite de défilement du mastic dans la catégorie "Fenêtre" dans les paramètres. Quitter et rouvrir une session de mastic sur votre écran ne fermera pas votre écran (en supposant que vous fermez simplement la fenêtre de mastic et ne tapez pas exit), comme l'OP l'a demandé.

J'espère que cela aide à identifier pourquoi l'augmentation du tampon de défilement de l'écran ne résout pas le problème de quelqu'un.

Brad P.
la source
17
C'est inexact. L'écran conserve son propre tampon. Lorsque vous faites défiler l'écran vers le haut en utilisant le mode copie, l'écran vous transmet l'historique de l'écran via des malédictions. Lorsqu'un multiplexeur de terminal tel qu'un écran est utilisé, le tampon de l'émulateur de terminal natif n'est pas utilisé (en effet, il peut ou non accumuler des déchets comme effet secondaire)
Steven Lu
bons points, et je crois que vous avez raison ... Je me demande si je dois supprimer ma réponse?
Brad P.
Je ne suis pas sûr. Comme cela supprimerait également mon commentaire que les gens semblent aimer.
Steven Lu
3
haha, tout à fait raison. Je pense que je vais le modifier pour noter qu'il est incorrect, mais laissez le texte original
Brad P.
2
Bien sûr, merci. Je préfère ne laisser que des modifications additives sur un site comme celui-ci afin que les gens puissent s'en éloigner sans être confus.
Steven Lu