Levantar o limite de tamanho de arquivo undo-tree do Vim?

1

Parece que meu vim undofiles só rastreia os últimos 500KB ou mais de mudanças. Na parte inferior do meu painel do gundo, vai da revisão de edição 1774 para 0 (o número total de revisões para o arquivo é 2776). Embora isso indique que todo o histórico pode exceder 1 MB, isso é muito aceitável, já que esse é o trabalho de vários dias (que ainda não está completo, não pôde ser inserido no sistema de controle de revisão de acordo com as políticas de check-in da minha empresa) .

Existe uma maneira de fazer isso manter mais história no vim? Não que seja particularmente fácil ou divertido passar por tudo isso, mas não tê-lo jogando fora seria bom.

Steven Lu
fonte
Usar o controle de versão é a solução óbvia, a menos que você queira acompanhar todos os seus erros de digitação.
romainl
Sim. Eu tenho carregado retroativamente as revisões do vim e as inserindo em um repositório do git. Nós usamos p4 porque o codebase é muito grande e interconectado para o git lidar com isso efetivamente, mas rastrear arquivos individuais manualmente usando o git funciona muito bem
Steven Lu
1
Dê uma olhada :h undolevels
FDinoff
sim tem que ser isso, por conta de 2776 e 1774 (eu devo ter feito 2 edições fantasmas). Obrigado pela dica! os comentários precisam de um botão "tornar isso uma resposta".
Steven Lu
"Este é o valor de vários dias de trabalho (que, ainda não estando completo, não pode ser inserido no sistema de controle de revisão)." Não é para isso que se ramifica?
Kyle Strand

Respostas:

2

Dê uma olhada :h undolevels. Defina para um número realmente grande.

Copiado abaixo por conveniência.

                                                'undolevels' 'ul'
'undolevels' 'ul'       number  (default 100, 1000 for Unix, VMS,
                                                Win32 and OS/2)
                        global
                        {not in Vi}
        Maximum number of changes that can be undone.  Since undo information
        is kept in memory, higher numbers will cause more memory to be used
        (nevertheless, a single change can use an unlimited amount of memory).
        Set to 0 for Vi compatibility: One level of undo and "u" undoes
        itself: 
                set ul=0
        But you can also get Vi compatibility by including the 'u' flag in
        'cpoptions', and still be able to use CTRL-R to repeat undo.
        Also see undo-two-ways.
        Set to a negative number for no undo at all: 
                set ul=-1
        This helps when you run out of memory for a single change.
        Also see clear-undo.    
FDinoff
fonte
Estou confuso, o valor padrão para 'undolevels' é 100 ou 1000?
Chad
O @Chad vim suporta muitos sistemas operacionais, alguns com menos memória que outros. Eu acho que o padrão depende de qual sistema foi compilado.
FDinoff