Uso regularmente org-mode
e a agenda para acompanhar minha lista de tarefas. Como uso o Dropbox para sincronizar minha lista, preciso que as mesmas tarefas estejam disponíveis em todos os computadores. Às vezes, durante o processo de limpeza, esquecerei de salvar minhas alterações, deixando o emacs aberto em casa quando vou ao escritório (portanto, não sou solicitado a economizar no fechamento do emacs). Como posso salvar automaticamente as alterações nos *.org
buffers da agenda modificados pela agenda?
EDIT: Para esclarecer, eu uso a exibição da agenda das minhas tarefas para me mostrar uma visão geral. Nessa visão, eu posso alterar o status das tarefas. Além disso, uso o modo de lembrete para adicionar novas tarefas, que podem ser recategorizadas na exibição da agenda. Essas alterações na agenda resultam em buffers de agenda no modo organizacional modificados, que devem ser salvos. Quando essas alterações são feitas, eu gostaria que os buffers fossem salvos automaticamente.
s
tecla frequentemente quando estiver no modo de exibição Agenda.C-x C-s
sempre que fizer alterações em um arquivo de agenda organizacional (da agenda ou diretamente). Não é automático, mas mantém tudo salvo.Respostas:
Um hack rápido, que não tenho certeza de que satisfará seu caso de uso, seria
Enquanto o buffer da agenda da organização estiver aberto, todos os buffers da organização serão salvos periodicamente (é equivalente ao que aconteceria se
s
pressionado regularmente a partir da exibição da agenda).Isso é um pouco abusivo
auto-save-mode
, pois o próprio buffer da agenda não faz muito sentido no que dizauto-save
respeito.Se você usar esse hack, é melhor garantir que os arquivos de backup sejam mantidos para que todos os seus arquivos .org estejam no lado seguro.
fonte
Você pode salvar todos os buffers da organização sempre que uma função específica da agenda for chamada. Por exemplo, para salvar todos os buffers da organização após sair da agenda:
Como alternativa, você pode salvar todos os buffers da organização após cada edição, digamos, após a adição de um prazo:
Isso funcionará tanto na agenda organizacional quanto nos buffers da organização. Use em
org-agenda-deadline
vez disso, se você quiser restringir as gravações automáticas à agenda.Você pode fazer o mesmo para qualquer função organizacional, portanto, esse método permite escolher exatamente quando salvar os buffers da organização. Essa abordagem abrange alguns casos esquecidos que o método do @Sigma perde: você pode salvar as alterações na agenda mesmo que saia da agenda antes que
auto-save
ela possa ser acionada, ou faça alterações fora da agenda e esqueça de salvá-las.Eu pessoalmente uso os dois métodos para cobrir todas as minhas bases.[Editar: Veja o comentário na solução @Sigma para saber por que eu não uso mais a solução dele.]fonte
(advice-add 'org-refile :after 'org-save-all-org-buffers)
automaticamente salvei os arquivos org depois que eu refilei para arquivos diferentes.org-refile
significa que eu não posso mais "Ir para" um determinado título (em vez de refilar o texto abaixo do cursor) chamandoorg-refile
com um argumento de prefixo.Vejo muitas respostas mais complicadas, isso funcionou para mim:
O Auto Save tem como padrão a execução após 30 segundos de inatividade (e em outros cenários não relacionados documentados no manual )
fonte
Eu uso o seguinte snippet para salvar automaticamente todos os buffers do modo agenda após uma nova captura, mas você pode conectá-lo em qualquer lugar que desejar:
Mude
'org-capture-after-finalize-hook
para'org-agenda-finalize-hook
, que acredito ser chamado pouco antes de exibir o buffer da agenda.fonte
org-refile-targets
destinos, para que seja possível que a economiaorg-agenda-files
não seja suficiente. Eu provavelmenteorg-save-all-org-buffers
me chamaria .dash
lá:mapcar
está embutido e faz a mesma coisa.mapcar
vez de traço!