O MacVim / Vim retém o conteúdo de todos os buffers (como o Sublime Text). Preserve a troca?

2

TL; DR: O Vim pode armazenar seus arquivos de troca e carregar o mesmo conjunto de arquivos de troca e buffers em carga toda vez?

Estou em um Mac (OS: Maverick), onde vários aplicativos mantêm os dados em algum tipo de armazenamento local / fora do caminho, que é restaurado entre falhas de reinicializações / aplicativos de máquinas.

Por ' storage ', use Sublime Text como exemplo, assim que eu abrir uma nova guia , ele salva o conteúdo da guia mesmo que eu não tenha salvo explicitamente a guia como um arquivo para armazenamento permanente em qualquer lugar. Então, se eu fosse fechar o ST e reabri-lo (ou ele / máquina cai), ele iria restaurar todos os Tabs & conteúdo que eu tinha antes do encerramento.

Esse tipo de retenção de conteúdo (TM) pode ser visto em vários aplicativos Mac (por exemplo, iMovie, QuickTime Player, TextEdit, etc) e está de acordo com a filosofia de design do Mac de permitir que o usuário continue de onde parou - sem precisar salvar nada explicitamente.

Dado o fato de que:
1. O Vim mantém arquivos de troca e atualiza a cada 200 golpes / 4 segundos de inatividade para recover
2. O Vim possui opções de inicialização que permitem que arquivos / swap sejam abertos

há base suficiente aqui para me perguntar se o Vim / MacVim não tem esse recurso retenção de conteúdo (TM) entre suas centenas de opções de configuração?

p.s. Eu uso atualmente vim-sessions, puramente para 'projeto como agrupamento de arquivos', mas ele não retém conteúdo para buffers não salvos

p.p.s. está jogando com a opção :preserve e cpoptions+=& em .vimrc. Parece não ter impacto, arquivos de swap ainda são excluídos no MacVim fecha, e nada é aberto quando o MacVim começa novamente

    
por snowbound 23.01.2015 / 08:23

1 resposta

2

A funcionalidade de sessões que você mencionou é o que você quer, mas você precisa passar uma opção para salvar buffers, assim como abrir arquivos e posições. Você pode usar :mksession para isso.

No entanto, :mksession ainda é controlado manualmente; Embora você possa vinculá-lo a teclas de atalho para salvar rapidamente / restaurar a funcionalidade, se você esquecer de executar o comando, perderá sua sessão.

Por esse motivo, recomendo o Session.vim plug-in vim. Isso (juntamente com algumas opções extras no seu .vimrc) terá salvamento e restauração automática da sessão. A lista completa de opções está na página. Especificamente, você quer dizer para passar a opção buffers para sessionoptions , conforme esta página .

    
por 23.01.2015 / 08:38