Como aumentar o tamanho do buffer de rolagem no tmux?


328

Como aumentar o tamanho do buffer de rolagem tmux?

Se eu entrar no modo de cópia, o número de linhas de rolagem disponíveis (visível no canto superior direito) será sempre abaixo de 2000. Tentei encontrar uma lista de todos os comandos do tmux, mas não consigo encontrar nada sobre o tamanho da rolagem. Pelo que vejo, o screencomando para definir essa opção não funciona tmux.

Usando tmux1.8, Ubuntu 12.04 LTS, konsoleou gnome-terminal.

Respostas:


428

O limite do histórico é um atributo do painel que é corrigido no momento da criação do painel e não pode ser alterado para os painéis existentes . O valor é obtido da history-limitopção da sessão (o valor padrão é 2000).

Para criar um painel com um valor diferente, você precisará definir a history-limitopção apropriada antes de criar o painel.

Para estabelecer um padrão diferente, você pode colocar uma linha como a seguinte no seu .tmux.confarquivo:

set-option -g history-limit 3000

Nota: Tenha cuidado ao definir um valor padrão muito grande, pois ele pode consumir muita RAM facilmente se você criar muitos painéis.

Para um novo painel (ou o painel inicial em uma nova janela) em uma sessão existente, você pode definir essa sessão history-limit. Você pode usar um comando como este (de um shell):

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

Para (o painel inicial da janela inicial em) uma nova sessão, você precisará definir o "global" history-limitantes de criar a sessão:

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

Nota: Se você não redefinir o history-limitvalor, o novo valor também será usado para outros painéis / janelas / sessões criados no futuro; No momento, não existe uma maneira direta de criar um único painel / janela / sessão com seu próprio limite específico sem alterar history-limit( pelo menos temporariamente) (embora show-option(especialmente no 1.7 e posterior) possa ajudar a recuperar o valor atual para restaurá-lo mais tarde )


26
Se uma "linha" é realmente apenas os caracteres nela, podemos assumir que 128 bytes é um tamanho de linha razoável na memória. Se eu estiver disposto a comprometer 32 MB para voltar para um único painel (o que combina comigo, não uso muitos painéis), poderia aumentar meu limite de histórico para aproximadamente 2 ** (25 - 7) = 256Kou 250 mil linhas.
PHS

8
Acabei decidindoset-option -g history-limit 50000
phs

2
o meu parece subir apenas para cerca de 4700 .. apesar de um novo painel. tmux 1.9
wuxmedia

4
Para aqueles que não sabem onde encontrar o arquivo .tmux.conf, basta criar um novo arquivo em ~ / .tmux.conf e adicionar essa linha única ao arquivo set-option -g history-limit 50000
precisa

1
Um pequeno hickup eu encontrei. Todas as sessões do tmux devem ser fechadas para que essa alteração tenha efeito. Vindo da tela GNU, assumi que cada nova sessão de tela teria como fonte o ~ / .tmux.conf, mas esse não é o caso. Somente quando todas as sessões do tmux são fechadas e a nova é aberta, a alteração no ~ / .tmux.conf tem efeito.
precisa

24

Abra o arquivo de configuração do tmux com o seguinte comando:

vim ~/.tmux.conf

No arquivo de configuração, adicione a seguinte linha:

set -g history-limit 5000

Saia e faça login novamente, inicie uma nova janela tmux e seu limite é de 5000 agora.


3
Não é necessário fazer logoff e logon. Você simplesmente precisa encerrar o servidor tmux completamente ou garantir a fonte ~/.tmux.confem cada sessão (e, em seguida, iniciar novas janelas nessas sessões e fechar as janelas antigas).
henrebotha 16/07/19

3

Isso se baseia na resposta do ntc2 e de Chris Johnsen. Estou usando isso sempre que quero criar uma nova sessão com um limite de histórico personalizado. Eu queria uma maneira de criar sessões com rolagem limitada, sem alterar permanentemente meu limite de histórico para sessões futuras.

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

Isso funciona independentemente de existir ou não sessões. Depois de definir o limite do histórico para a nova sessão, ele o redefine para o padrão, que para mim é 2000.

Criei um script executável do bash que torna isso um pouco mais útil. O 1º parâmetro passado para o script define o limite do histórico para a nova sessão e o 2º parâmetro define o nome da sessão:

#!/bin/bash
tmux set-option -g history-limit "${1}" \; new-session -s "${2}" \; set-option -g history-limit 2000
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.