¿Cómo aumentar el tamaño del búfer de desplazamiento en tmux?


328

¿Cómo aumento el tamaño del búfer de desplazamiento hacia atrás tmux?

Si entro en modo de copia, la cantidad de líneas de desplazamiento disponibles (visibles en la esquina superior derecha) siempre está por debajo de 2000. Intenté encontrar una lista de todos los comandos tmux, pero no encuentro nada sobre el tamaño de desplazamiento. Por lo que veo, el screencomando para configurar esa opción no funciona tmux.

Usando tmux1.8, Ubuntu 12.04 LTS, ya sea konsoleo gnome-terminal.

Respuestas:


428

El límite del historial es un atributo de panel que se fija en el momento de la creación del panel y no se puede cambiar para paneles existentes . El valor se toma de la history-limitopción de sesión (el valor predeterminado es 2000).

Para crear un panel con un valor diferente, deberá configurar la history-limitopción adecuada antes de crear el panel.

Para establecer un valor predeterminado diferente, puede poner una línea como la siguiente en su .tmux.confarchivo:

set-option -g history-limit 3000

Nota: Tenga cuidado al establecer un valor predeterminado muy grande, puede consumir fácilmente mucha RAM si crea muchos paneles.

Para un nuevo panel (o el panel inicial en una nueva ventana) en una sesión existente, puede configurar esa sesión history-limit. Puede usar un comando como este (desde un shell):

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

Para (el panel inicial de la ventana inicial en) una nueva sesión, deberá establecer la opción "global" history-limitantes de crear la sesión:

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

Nota: Si no restablece el history-limitvalor, el nuevo valor también se usará para otros paneles / ventanas / sesiones creadas en el futuro; actualmente no hay una forma directa de crear un único panel / ventana / sesión nuevo con su propio límite específico sin cambiar history-limit( al menos temporalmente) (aunque show-option(especialmente en 1.7 y posterior) puede ayudar a recuperar el valor actual para que pueda restaurarlo más tarde )


26
Si una "línea" realmente son solo los caracteres dentro de ella, entonces podemos suponer que 128 bytes es un tamaño de línea razonable en la memoria. Si estoy dispuesto a comprometer 32 MB para desplazarme hacia atrás para un solo panel (lo que me conviene, no uso muchos paneles), entonces podría aumentar mi límite de historial a aproximadamente 2 ** (25 - 7) = 256K250 mil líneas.
phs

8
Terminé estableciéndomeset-option -g history-limit 50000
phs

2
el mío parece solo llegar a alrededor de 4700 .. a pesar de un nuevo panel. tmux 1.9
wuxmedia

44
Para aquellos de ustedes que no saben dónde encontrar el archivo .tmux.conf, simplemente pueden crear un nuevo archivo en ~ / .tmux.conf, luego agregar esta sola línea al archivo set-option -g history-limit 50000
C.Lee

1
Una pequeña molestia me encontré. Todas las sesiones de tmux deben cerrarse para que este cambio surta efecto. Viniendo de la pantalla de GNU, supuse que cada nueva sesión de pantalla generaría ~ / .tmux.conf, pero ese no es el caso. Solo cuando todas las sesiones de tmux están cerradas y se abre una nueva, el cambio a ~ / .tmux.conf tiene efecto.
Rudolph9

24

Abra el archivo de configuración de tmux con el siguiente comando:

vim ~/.tmux.conf

En el archivo de configuración, agregue la siguiente línea:

set -g history-limit 5000

Cierre sesión e inicie sesión nuevamente, inicie una nueva ventana de tmux y su límite es 5000 ahora.


3
No es necesario cerrar sesión e iniciar sesión. Simplemente tiene que cerrar el servidor tmux por completo o asegurarse de realizar el origen ~/.tmux.confen cada sesión (y luego iniciar nuevas ventanas en esas sesiones y cerrar las ventanas antiguas).
henrebotha

3

Esto se basa en ntc2 y la respuesta de Chris Johnsen. Estoy usando esto cada vez que quiero crear una nueva sesión con un límite de historial personalizado. Quería una forma de crear sesiones con retroceso limitado sin cambiar permanentemente mi límite de historial para futuras sesiones.

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

Esto funciona si hay sesiones existentes o no. Después de establecer el límite de historial para la nueva sesión, lo restablece al valor predeterminado, que para mí es 2000.

Creé un script bash ejecutable que lo hace un poco más útil. El primer parámetro pasado al script establece el límite de historial para la nueva sesión y el segundo parámetro establece su nombre de sesión:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.