emacs – 以组织模式重命列列表项

我一直在努力改进我的org-fu,我的一个任务就是重新列出列表项.

我通常更喜欢使用列表项目有各种原因(主要是 – 不要乱丢我的内容视图,并且考虑到我的任务量,有一个真实的轮廓).

但是,当我尝试重新编译使用捕获系统创建的列表项时,我收到一个错误 – 我不允许这样做,因为它“没有意义”.

有没有办法覆盖这种行为?

编辑:
ATM我只设法重新输入条目(即标题),然后手动将它们转换为列表项.我认为有一个比这更好的解决方案……

我在org-capture.el中找到了这个函数:

(defun org-capture-refile ()
  "Finalize the current capture and then refile the entry.
Refiling is done from the base buffer, because the indirect buffer is then
already gone.  Any prefix argument will be passed to the refile command."
  (interactive)
  (unless (eq (org-capture-get :type 'local) 'entry)
    (error
     "Refiling from a capture buffer makes only sense for `entry'-type templates"))
  (let ((pos (point))
    (base (buffer-base-buffer (current-buffer)))
    (org-refile-for-capture t))
    (org-capture-finalize)
    (save-window-excursion
      (with-current-buffer (or base (current-buffer))
    (save-excursion
      (save-restriction
        (widen)
        (goto-char pos)
        (call-interactively 'org-refile)))))))

如何删除部分(除非(eq(org-capture-get:type’local)’条目)以使其生效?

编辑:23.10.12

到目前为止,我设法让这个工作:

(defun narrow-and-reveal ()
    "Narrow and reveal all content"
    (org-narrow-to-subtree)
    (org-show-subtree)
    )
(defun widen-and-outline ()
    "Widen and move to beginning of file"
    (widen)
    (beginning-of-buffer)
    (org-overview)
    (org-content)
    )
(defun org-goto-symbol ()
  "Will navigate to the symbol at the current point of the cursor"
  (widen-and-outline)
  (interactive)
  (let ((current-prefix-arg 4)) ;; emulate C-u
    (call-interactively 'org-refile)) ;; invoke org-refile interactively
  (narrow-and-reveal)
  )
(defun custom-org-prompt-headline ()
  (org-goto-symbol) ;; invoke org-refile interactively
  (end-of-buffer))
(setq org-capture-templates`(
    ("t" "ToDo" item (file+function (concat org-directory "ToDo.org") custom-org-prompt-headline))))

但它在输入列表项之前提示我输入文件中的部分,我觉得这有点让人分心.
我只想选择重新列出列表项.我无法想象它应该是那么难以实现.它是什么?

最佳答案 确实,有一种更好的方法:你为什么不使用
capture templates

基本上,你只需要定义你喜欢的模板,比如说:

(setq org-capture-templates
 '(("t" "something" item (file+olp "~/path/to/you/file.org" "Header" "Subheader")
        "- %?\n  %i")
   ("n" "notes" checkitem (file+olp "~/somewhere/notes.org" "Notes")
        "- [ ] %?\n")))

然后,在使用时,调用(Mx)组织捕获(如果你遵循standard customizations,则绑定到C-cc),在已经列出的项目模板C-cC-c中输入你的注释,你就完成了!

所有细节都在manual(settings syntax,automagically expanding elements ……)

点赞