Posso definir o Vim para não manter um arquivo .swp quando não houver edições não salvas?

0

Eu corro o Vim dentro de uma sessão screen . Quando essa sessão termina, ela mata processos em execução, fazendo com que o Vim deixe para trás .swp arquivos. Isso é bom se os arquivos .swp contiverem informações que me permitam recuperar as edições não salvas, mas na maioria dos casos eu saio de screen com tudo em um estado salvo limpo ( :wa ). Isso torna os arquivos .swp um incômodo, pois eles não contêm nenhuma informação útil, mas ainda causam um prompt de recuperação ao reabrir.

Posso obter o Vim para manter apenas um arquivo .swp quando houver alterações não salvas pendentes?

    
por jl6 21.02.2016 / 16:14

1 resposta

1

Troque arquivos

A resposta curta é não . Com o Vim, os arquivos de troca são constantemente mantidos abertos enquanto o buffer está sendo editado. Ele poderia atrasar a edição demais para abrir o arquivo de permuta e fechá-lo toda vez que uma alteração for feita nele (o arquivo de troca é atualizado após digitar 200 caracteres ou quando você não digitou nada por quatro segundos).

Se você não quiser que um arquivo de troca seja usado para um determinado buffer ou buffers, é possível cancelar temporariamente a opção swapfile :

set noswapfile

Para abrir um novo buffer sem usar um arquivo de troca, você pode usar o modificador :noswapfile , por exemplo,

:noswapfile edit ~/.bashrc

Sessões

Do seu caso de uso, parece que você pode se beneficiar das sessões do Vim. Quando terminar de editar, execute mksession para salvar sua sessão em um arquivo de script do Vim chamado Session.vim no diretório atual. Em seguida, digite xa para escrever e sair de todos os arquivos. Da próxima vez que você estiver executando o Vim, inicie-o no mesmo diretório de trabalho usando

vim -S Session.vim

Como alternativa, se você já iniciou o Vim, é possível criar o script da sessão com

:source Session.vim

Veja help Session para mais informações sobre esse recurso útil.

BTW, em relação à tela, presumo que você esteja apenas fechando a sessão de tela (em vez de desconectá-la) porque o computador está sendo desligado ou reiniciado.

    
por 21.02.2016 / 20:17

Tags