org roam 升级v2后 Deft的配置方式

之前是可以显示笔记title的:

目前的设置如下,请问如何修改:

>   (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 "\\(?:"
>                 "^%+"                       ; line beg with %
>                 "\\|^#\\+[[:alnum:]_]+:.*$" ; org-mode metadata
>                 "\\|-\\*-[[:alpha:]]+-\\*-" ; -*- .. -*- lines
>                 "\\|^:.*"                    ; propertie lines (start with :)
>                 "$\\)"))

看了一下deft.el, 里面的正则用的是大写“TITLE”

                          (if deft-org-mode-title-prefix
                              (concat "^#+TITLE: " title)
                            title))

而org roam从v1升级的v2是把大写的换成小写了“#+title: ”

这算是deft的问题还是roam的问题?

看起来 deft 是以 org 文件首行作为左列标题显示的,跟 #+titile 无关。

1 个赞

试验了一下,还真是,小写title如果放在首行也可以显示。

这里 其实是说明了的,我也是才看 :sweat_smile:

这里notdeft 的解决方案,deft 不知道有没有对应的方法。

这里 有一点关于 deft 的相关说明,但不太理解 :sweat:

研究了一下deft.el,发现deft就是找第一个非空行来提取title(deft-parse-title),而设置deft-strip-title-regexp变量没有什么用,估计只能应用于分析第一个非空行里哪些字符算是title。现在先暂时用 (setq deft-use-filename-as-title t)方式显示文件名作为title了。

看你发的哪个Nodeft好像可能是解决办法,我研究研究

Deft在org-roam v2有啥好的办法屏蔽properties吗,设置了deft-strip-summary-regexp好像不起作用。

请教一下,用deft 和用 counsel ripgrep/grep 类的搜索工具的差别是什么,之前用过 deft,但没有体会到明显的区别后就放弃了

可能先入为主?我是学习用org roam时看到有人配置用,就用了。所以也没动力去比较其他方法,够用即可。

我目前是这样的:

  (setq deft-strip-summary-regexp
        (concat "\\(?:"
                "^%+"                       ; line beg with %
                "\\|^#\\+[[:alnum:]_]+:.*$" ; org-mode metadata
                "\\|-\\*-[[:alpha:]]+-\\*-" ; -*- .. -*- lines
                "\\|^:.*"                    ; propertie lines (start with :)
                "$\\)"))

似乎没起作用 :frowning:

感谢,确实,我之前也是看了org roam 的文档里推荐试用了一会deft,没搞太清楚这些跨文档搜索工具间的差别

你这个就是我发这个贴的问题。仔细看看本贴所有内容吧

这里给出了一个解决方案,我自己测试之后似乎可行。

3 个赞

的确可行! 重载了deft-parse-title,不知道会不会引起其他问题,不过已经满足我的需求了