关于 org 笔记库和搜索的问题

大家好,麻烦大家,我想请教一下

我在平时会创建很多的笔记,这些笔记每个都是 org 格式存放在一个目录下(目录下有很多子目录分类)然后我希望所有这个目录下 org 的笔记可以很方便的管理,比如:

  • 创建新的笔记以后可以很方便的选择自己保存那个目录
  • 搜索一个关键词可以显示所有符合的文件
  • 可以给每个文件上不同的 tag 然后通过搜索 tag 找到所有包含此 tag 的笔记

等等

希望大家能帮忙给点思路,以前我用过 evernote,现在我想用 org 来完全替代 evernote,evernote 所有的笔记都有个 library 来管理,搜索也很方便,我想让 org 实现同样的功能,谢谢大家的帮助

另外大家都是怎么管理自己笔记的?

可以考虑一下 deft 这个插件

3 个赞
  • org capture
  • Emacs 搜索功能很好啊,counsel-ag 就可以搜索指定目录里面的文字
  • Org Mode支持 ,org-agenda 就可以按tag 搜索
1 个赞

我最近用了 deft,感觉不错。

不过我做了一些定制,比如新笔记文件名_替换空格,笔记预览不显示 org 的#开头的信息等。

  (use-package deft
    :ensure t
    :bind
    (("C-x d" . deft-find-file)
     ("C-x C-d" . deft))
    :config
    (setq deft-extensions '("txt" "tex" "org" "md"))
    (setq deft-directory "your/notes/path"))
    (setq deft-recursive t)
    (setq deft-file-naming-rules '((noslash . "_")))
    (setq deft-text-mode 'org-mode)
    (setq deft-use-filter-string-for-filename t)
    (setq deft-org-mode-title-prefix t)
    (setq deft-use-filename-as-title nil)
    (setq deft-strip-summary-regexp
          (concat "\\("
                  "[\n\t]" ;; blank
                  "\\|^#\\+[[:upper:]_]+:.*$" ;; org-mode metadata
                  "\\|^#\\+[[:alnum:]_]+:.*$" ;; org-mode metadata
                  "\\)")))

具体请查看:

6 个赞

哈哈 好厉害,感觉笔记预览不显示开头的信息很有用,感谢分享

counsel-ag is在我這兒出不來搜索結果,好煩

嗯,可以過濾掉一些惱人的字符

org-tags-view第一次调用的时候都会卡个几秒,无奈~

神级应用!,,!

请教下,org-roam v2如下内容可以屏蔽吗?

:PROPERTIES:
:ID:       0e7c6a4a-5d45-4907-8cc1-c8b98fd72d6f
:END:

设置了filter,但是好像不起作用。

(setq deft-strip-summary-regexp ":PROPERTIES:\n\\(.+\n\\)+:END:\n")

貌似org roam符合你所有需求。。。

请问如果要搜索一个目录里多个文件里的同一个关键词 应该咋操作呢?

如果可以,我會只用一個 org 檔

但近期看了 org-roam 或 org-transclusion 都覺得值得試試

1.创建新的笔记以后可以很方便的选择自己保存那个目录

自定义个简单的函数就可以了

2.搜索一个关键词可以显示所有符合的文件

可以通过rg 加参数来过滤出来,参考:rg有什么参数可以只列出文件路径吗?

这个只列出文件的函数我还没写,因为我现在通过封装git命令来列出文件并过滤,也可以直接用counsel-git,另外我自定义了个链接类型来支持回车跳转到对应的文件(跨目录)。

比如我自定义的wiki类型,链接是 [[wiki:test-file]],在这上面回车或点击,就用ivy弹出在git 目录下包含 test-file 的文件,选中后再回车一下,就跳转到那个文件,这样就不需要在 wiki 链接这里写相对路径,而且不用写后缀。

3.可以给每个文件上不同的 tag 然后通过搜索 tag 找到所有包含此 tag 的笔记

可以参考我在这里写的函数:正则如何搜索同时包含两个字符串的条件? - #13,来自 owensys

支持搜索同时满足多个tag的文件。 用 org-tags-view 和org-agenda来搜索包含tag的文件实在是不好用,首先和org-agenda-files混合了,而且文件多了更不好用。

还有一点是这两个函数 eye/search-or-by-rgeye/search-and-by-rg 不局限于搜索多个tag,可以以空格分割搜索其它关键词,搜索tag只是在前面加个冒号而已。

已经改用org-roam,弃用deft了…

org-roam 配合 rg 搜索,确实很爽