Caros usuários deste plugin! Desculpe, mas não o mantenho mais! Se alguém de vocês estiver interessado em mantê-lo, entre em contato comigo e irei adicioná-lo como colaborador.
AutoSave - salva automaticamente as alterações no disco sem precisar usar :w
(ou qualquer ligação a ele) sempre que um buffer for modificado ou baseado em seus eventos preferidos.
Inspirado no mesmo recurso do editor de texto RubyMine.
Por padrão, o AutoSave será salvo sempre que algo for alterado no modo normal e quando o usuário sair do modo de inserção. Esta configuração é uma mistura entre "salvar com a maior frequência possível" e "tentar evitar quebrar outros plugins que dependem de eventos de gravação de arquivo".
Use vundle ou baixe a versão empacotada em vim.org.
O AutoSave está desabilitado por padrão, execute :AutoSaveToggle
para habilitá-lo/desabilitá-lo.
Se você deseja que o plugin seja habilitado na inicialização, use a opção g:auto_save
.
" .vimrc
let g: auto_save = 1 " enable AutoSave on Vim startup
Também é possível substituir o valor global g:auto_save
individualmente por buffer ou janela. Por exemplo, se o salvamento automático estiver ativado globalmente, você poderá desativar alguns arquivos. E vice-versa, opte por alguns arquivos, quando o salvamento automático estiver desabilitado globalmente.
let g: auto_save = 0
augroup ft_markdown
au !
au FileType markdown let b: auto_save = 1
augroup END
O salvamento automático será exibido na linha de status em cada salvamento automático por padrão:
(AutoSave) saved at 08:40:55
Você pode silenciar a exibição com a opção g:auto_save_silent
:
" .vimrc
let g: auto_save_silent = 1 " do not display the auto-save notification
Os eventos nos quais o AutoSave realizará um salvamento podem ser ajustados usando a opção g:auto_save_events
. Usar apenas InsertLeave
e TextChanged
, o padrão, salvará todas as alterações no modo normal e sempre que você sair do modo de inserção.
" .vimrc
let g: auto_save_events = [ " InsertLeave " , " TextChanged " ]
Outros eventos que você pode querer usar:
TextChangedI
salvará depois que uma alteração for feita no texto no buffer atual no modo de inserção.CursorHold
salvará cada quantidade de milissegundos conforme definido na opção updatetime
no modo normal.CursorHoldI
fará a mesma coisa no modo de inserção.CompleteDone
também acionará um salvamento após cada evento de conclusão. Alguns desses comandos podem não estar disponíveis, dependendo da instalação do Vim. Consulte a visão geral dos autocommands para obter uma listagem completa ( :h autocommand-events
).
Aviso! É aconselhável ter cuidado com a opção updatetime
, pois ela pode causar problemas quando definida como muito pequena. 200 já parece ser pequeno demais para funcionar com outros plug-ins. Use 1000 para uma configuração mais conservadora.
Se você precisar de um gancho de salvamento automático (como gerar tags após o salvamento ou abortar o salvamento anterior), use as opções g:auto_save_postsave_hook
ou g:auto_save_presave_hook
:
" .vimrc
" This will run :TagsGenerate after each save
let g: auto_save_postsave_hook = ' TagsGenerate '
" This will run AbortIfNotGitDirectory function before each save
let g: auto_save_presave_hook = ' call AbortIfNotGitDirectory() '
" Example hook from vim-auto-save-git-hook plugin
function ! AbortIfNotGitDirectory ()
if ...
let g: auto_save_abort = 0
else
let g: auto_save_abort = 1
endif
endfunction
Por padrão, apenas o buffer atual é gravado (como :w
). Você pode escolher que todos os buffers sejam gravados no salvamento automático usando a opção g:auto_save_write_all_buffers
(como :wa
).
" .vimrc
let g: auto_save_write_all_buffers = 1 " write all open buffers as if you would use :wa
O doc/auto-save.txt
é uma versão convertida do README.md
. Não edite diretamente. Em vez disso, instale o md2vim e execute o script update_doc_from_readme.sh
.
O desenvolvimento é feito no repositório 907th/vim-auto-save. Por favor, relate quaisquer bugs e/ou sugestões lá. Qualquer contribuição é bem-vinda!
Distribuído sob a licença MIT (consulte LICENSE.txt).
Direitos autorais (c) 2013-2021 Aleksei Chernenkov