Emacs org-mode: переустановить с помощью goto-интерфейса
Я часто использую структуру capture-refile-archive org-mode, но у меня есть проблемы с тем, как работает refiling. Я использую завершение IDO, чтобы, когда я перекомпилирую дерево C-c C-w
Я получаю все возможные деревья для добавления в мини-буфер.
Однако это приводит к огромному количеству возможных дополнений, которые на самом деле не очень читабельны. Было бы гораздо лучше, если бы вы могли выбрать местоположение файла для перекомпиляции, а затем использовать org-goto-interface
временный буфер для выбора конкретного поддерева.
Кто-нибудь знает, как это можно сделать?
2 ответа
Возможно, настройки, которые вы ищете
(setq org-refile-use-outline-path 'file)
(setq org-outline-path-complete-in-steps t)
org-refile-use-outline-path
позволяет вам указывать цели refile как пути (file.org/heading/subheading
) а также org-outline-path-complete-in-steps
сделает паузу после соревнования каждого этапа пути. Начните заправку, введите путь и нажмите [tab]
чтобы получить список всех заголовков верхнего уровня. Продолжайте в нужное место.
Вы можете сделать это, установив org-refile-targets
перед запускомorg-refile
, Например, я описал это для выбора и пересылки файлов Org, которых нет в глобальномorg-refile-targets
, Это было сосредоточено на том, чтобы иметь функции, кромеorg-refile
обрабатывать особые случаи, но если вы хотели org-refile
чтобы всегда запрашивать буфер или файл для восстановления, вы можете посоветоватьorg-refile
переопределить org-refile-targets
или вы могли бы установитьorg-refile-targets
к функции, которая возвращает выбранный буфер.
(defun km/get-open-org-file ()
(buffer-file-name
(get-buffer
(org-icompleting-read "Buffer: "
(mapcar 'buffer-name
(org-buffer-list 'files))))))
(setq org-refile-targets '((km/get-open-org-file . (:maxlevel . 2))))
Как именно вы настроили org-refile-targets
многое зависит от вашего рабочего процесса и структуры заметок, но эти примеры, надеюсь, дадут вам представление о том, как вы можете заставить вещи работать так, как вы хотите.