用Org-mode当作笔记录入工具时所遇到的问题

我用emacs、org-mode有好几年的时间了,但始终没有啥进步。一直把emacs当作一个简单的文字编辑器,把org-mode当作一个简单的日志系统,因为够用,所以没有研究。 这段时间,我想把我的各类笔记都搬到了emacs上,准备以后就用emacs+org-mode作为笔记录入系统。但我用了一段时间后,发现这套东西极其简陋,且难以使用。 目前感觉最麻烦的是无法快速在各个笔记之间快速切换,只能通过按c-x b来在缓冲区之间切换各个笔记。 ———————— 目前我解决的方法是新建一个navi.org文件,来存放所有各个笔记的本地超链接,包括每个笔记的章节超链接。比如: file:some_note.org::some_chapter_name 或者 file:some_note.org::#some_chapter_custom-_id 这个是标题中CUSTOM_ID属性的值 这样就能链接到具体笔记的某一个章节了。 我手动一个一个添加后,使用起来真的很爽!不过也真的很累! ———————————— 所以,我想问各位大佬的是: 1.有没有自动生成某个目录下所有org文件中所有标题超链接的程序? 2.有没有为每一个标题生成独一无二的custom_id中的程序,就好像生成随机的很长的文件名的那种程序?我用MobileOrg同步的时候,就会出现ID属性会有很长的唯一的值。

1 个赞

要善于搜索啊😂

  • 补充一个 org-brain
  • heading 跳转:counsel-org-goto-all / helm-org-rifle
  • heading bookmark: org-bookmark-heading
  • ID generation: org-id.el
;;;;; my-org-add-ids-to-headlines-in-file
  (setq org-id-link-to-org-use-id t
        org-id-method 'uuid)
  (defun my-org-add-ids-to-headlines-in-file ()
    "Add ID properties to all headlines in the current file"
    (interactive)
    (save-excursion
      (widen)
      (goto-char (point-min))
      (org-map-entries 'org-id-get-create)))

  (add-hook 'org-capture-prepare-finalize-hook 'org-id-get-create)
  (add-hook 'org-mode-hook
            (lambda ()
              (add-hook 'before-save-hook 'my-org-add-ids-to-headlines-in-file nil 'local)))

counsel-org-goto-all demo:

3 个赞

多谢你的解答。 中间的那一段代码,是org-id.el文件中的内容吗?是用于生成id的吗?

我想我应该先学学lisp。

不是org-id里的, 作用是在每次保存后为没有ID的heading生成ID

org-id-get-createorg-id.el里的function

要先启用org-id

(require 'org-id)

或者直接在M-x Customize里搜索org module找到id后启用

你需要的是 Wiki,不是 Org。

如果你不需要写代码,Muse 足够满足你的需求了。