一直依赖使用 deft 来搜索 org-roam 笔记文件,但是现在文件多了之后,速度比较慢,了解到有 xeft,功能和性能方面都更优。但是其依赖 xapian,且目前只有 linux 和 macos 能够比较方便地安装,甚至 pre-build 版本也是有的。Windows 系统下,这个 回答 https://github.com/casouri/xeft/issues/11 提供了 mingw-x64 的解决方案,但是似乎只适用于 mingw-w64 版本的 Emacs,我按照该步骤成功地在 xeft 文件下生成了 xapian-lite.dll 文件,但是在 Emacs 中执行 M-x xeft
时,显示 xeft--require-xapian-lite: Module could not be opened: "c:/Users/panmengguan/.emacs.d/elpa/xeft-3.2/xapian-lite.dll", "找不到指定的模块。"
请问在 native 版本的 windows Emacs 下,有办法使用 xeft 吗?
SPQR
2
你的emacs有没有开启动态模块支持?看这个报错是找到了dll但是打不开,是不是没有动态模块支持?mingw64下面自己编译emacs带上–with-module的选项是可以正常使用xeft的,从官网下的那个zip包不清楚有没有开启动态模块
我是直接使用的 Emacs 官方 ftp 里的 windows 版本 28.1 binary 文件 (http://ftp.gnu.org/gnu/emacs/windows/emacs-28/),不是用 mingw64 自己编译的,请问能支持动态模块吗?一直用的 native 版本,迁移 mingw64 版本感觉代价有点大
刚试了一下用管理员打开 runemacs.exe,也是一样的错误。
如果 xeft 配置不起来,也可以试试 consult-recoll、org-recoll,都是基于 xapian 的。
1 个赞
既然都用上roam了,直接用roam的搜索来直接搜索数据库不更快?
你没用过 xeft 和打开过 org-roam.db 文件吧?xeft 搜索的是文件内容,org-roam.db
里没有文件内容。
确实没用过xeft, 如果是搜文本内容的话,我个人不太喜欢,特别是笔记多起来以后,会有很多相似的结果还要去过滤,实在需要搜文本再用rg去搜就好了。
xeft 是逻辑搜索,跟搜索引擎的高级搜索一样。
rg 是正则搜索。
khoj 是自然语言搜索/语义搜索。
这三者不是互相替代的关系,你没用过就体会不到其中的区别。
2 个赞
谢谢!第一次知道 recoll 这个软件,确实是基于 xapian 构建的,emacs 里也有不少有关插件,不过它的 windows 版是收费的,我再去了解一下。
我一直用的 org-roam,笔记用 Git 管理,通过 Github 跨平台共享,要搜索全文就用 consult-ripgrep
这个命令,速度也很快。
是的,我也是这套工作流,只要做笔记的时候把headline做好加入到roam的数据库中,基本上很少需要去全文搜索,很高效。
我目前也是的,不过也实在有点眼馋,想试试 Xeft 之类的工具怎么样
确实,命名很重要。我是不用 org-roam 那个 org-roam-dailies
的,我的 node 都有名字。
想请教一下你会写 daily notes 之类的吗?比如一些总结、计划、流水性质的笔记,或者说一些暂时不知道如何归类的笔记,我之前是按照 org-mode 默认的那种 datetree 即在一个 journal.org 里的,后来还是按照 org-roam-dailies 的方式分开在每天的 org 文件里,目前感觉各有利弊
我比较懒,不用 org-roam的 daily notes。临时的笔记我会 org-capture 到 agenda 的 inbox.org 里面,或者先记在手机的 Borg 里面,也是会自动同步到agenda的 inbox.org。有空了觉得有用再整理到 org-roam 里面去。
1 个赞
SPQR
19
重新编译一个是唯一办法。。。不过怕麻烦的话,用ripgrep或者ugrep配合consult-ripgrep或者consult-grep最方便,速度也快,就是UI没有xeft那么漂亮。
看来 windows 下只能这样了,我目前主要也是有必要时用 counsel-rg
和 color-rg
检索, deft
太慢了,今天尝试了 @suliveevil 推荐的 org-recoll
, windows 下搜索中文存在乱码问题,看来 windows 下用 Emacs 还是限制多多,先不折腾了。。