Я регулярно использую org-mode
и повестку дня, чтобы отслеживать мой список дел. Поскольку я использую Dropbox для синхронизации своего списка, мне нужно, чтобы одни и те же задачи были доступны на всех компьютерах. Иногда в ходе моей очистки я забываю сохранить свои изменения, оставляя emacs открытым дома, когда я иду в офис (поэтому мне не предлагается экономить на закрытии emacs). Как я могу автоматически сохранять изменения в *.org
буферах повестки дня, которые изменяются через повестку дня?
РЕДАКТИРОВАТЬ: Чтобы уточнить, я использую повестку дня моих задач, чтобы показать мне обзор. С этой точки зрения, я могу изменить статус задач. Кроме того, я использую режим запоминания для добавления новых задач, которые затем можно перегруппировать в виде повестки дня. Эти изменения в повестке дня приводят к измененным буферам повестки дня в режиме org, которые затем должны быть сохранены. Когда эти изменения будут сделаны, я бы хотел, чтобы буферы сохранялись автоматически.
s
часто нажимали на клавиши в режиме просмотра Повестки дня.C-x C-s
каждый раз, когда я делаю какие-либо изменения в файле org-повестки дня (из повестки дня или напрямую). Не автоматически, но сохраняет все сохраненным.Ответы:
Быстрый взлом, который я не уверен, удовлетворит ваш сценарий использования
Пока буфер повестки дня Org открыт, все буферы org будут периодически сохраняться (это эквивалентно тому, что происходило бы, если бы
s
регулярно нажимать в представлении повестки дня).Это несколько злоупотребляет
auto-save-mode
тем, что сам буфер повестки дня не имеет особого смысла вauto-save
этом отношении.Если вам случится использовать этот хак, вам лучше убедиться, что файлы резервных копий хранятся для всех ваших файлов .org, чтобы быть в безопасности.
источник
Вы можете сохранить все организационные буферы всякий раз, когда вызывается определенная функция повестки дня. Например, чтобы сохранить все организационные буферы после выхода из повестки дня:
Кроме того, вы можете сохранить все орг-буферы после каждого редактирования, например, после добавления крайнего срока:
Это будет работать как в орг-повестке дня, так и в орг-буферах. Используйте
org-agenda-deadline
вместо этого, если вы хотите ограничить автосохранение в повестке дня.Вы можете сделать то же самое для любой функции org, поэтому этот метод позволяет вам точно выбирать, когда сохранять буферы org. Этот подход охватывает некоторые крайние случаи, которые пропускает метод @Sigma: вы можете сохранить изменения в своей повестке дня, даже если вы покинете повестку дня до того, как
auto-save
у вас появится возможность сработать, или внесете изменения вне повестки дня и забудете их сохранить.Я лично использую оба метода, чтобы покрыть все мои основы.[Редактировать: см. Комментарий к решению @Sigma, почему я больше не использую его решение.]источник
(advice-add 'org-refile :after 'org-save-all-org-buffers)
автоматически сохраняет файлы org после того, как я перекомпилировал их в другие файлы.org-refile
значению означает, что я больше не могу «перейти» к определенному заголовку (в отличие от перезаписи заголовка под курсором), вызываяorg-refile
с префиксным аргументом ..Я вижу много ответов, которые являются более сложными, это работает для меня:
Автосохранение по умолчанию работает после 30 секунд бездействия (и в других, не связанных с сценариями, документированных в руководстве )
источник
Я использую следующий фрагмент для автоматического сохранения всех буферов режима повестки дня после нового захвата, но вы можете подключить его в любом месте:
Измените значение
'org-capture-after-finalize-hook
на'org-agenda-finalize-hook
, которое, я считаю, вызывается непосредственно перед отображением буфера повестки дня.источник
org-refile-targets
назначения, поэтому возможно, что сохраненияorg-agenda-files
недостаточно. Я, наверное, просто позвонюorg-save-all-org-buffers
себе.dash
там пользоваться:mapcar
встроен и делает то же самое.mapcar
вместо тире!