刚刚安装了org-supertag,非常让人兴奋的工具,迫不及待得想用起来。
但是有一个问题,我一直使用org和org agenda来管理自己的日程,记录note还有几乎生活工作中的所有信息。通过各种tag来便利搜索。
需要index的org文件都自在org-agenda-files中定义,里面已经有N多的文件,包含各种tag。当我安装了org-supertag后,怎么让org-supertag识别和管理我已有的tag呢?
我尝试通过
(setq org-supertag-sync-directories (append
'(“/path1”)
(“/path2”)
…
))
来设定supertag管理的文件,但是好像不work。是不是我的使用方法有问题?
希望得到指教。
yibie
2
你好,我是 org-supertag 的开发者。先回答你的问题:
org-supertag 的标签体系是独立于 org-mode 本身的标签的。这么做是为了保证 org-supertag 的设计不会影响到原有的 org-mode 的体验(换言之 org-supertag 并不接管 org-tag,你可以相互独立使用)。主要是我觉得 org-agenda 本身功能已经足够强大,以及有很多插件。
另外一个原因是 org-agenda 的代码足足有 1 万多行,而且与 org-mode 本身的功能相互嵌套很深(org-ql 的开发者抱怨过,出了问题很难 debug)。我无法保证 org-supertag 接管了 org-mode 原本的功能之后,就不会出现其它的问题。
所以,实际上目前 org-supertag 不能识别和管理你已有的 tag,除非你使用 org-supertag 的命令重新录入一遍…
最后是一句提醒,有关的问题可以直接到 org-supertag 相关的帖子下回复。不用另开新帖,我看到就会回复。
谢谢您的迅速回复!
理解您的开发初衷了,谢谢!
有没有可能,加一个函数,scan一下org-supertag-sync-directories或者指定的文件夹中的org文件,将这些org中的传统的tag加入org-supertag。这样可以不用和org-agenda发生关系,只是一个独立行为。
谢谢!下次发帖会注意不另外开新帖。
yibie
4
有可能性。因为本身 org-supertag 具备同步机制。
我说的不能识别和管理已有的 tag,是指不能直接管理 org-agenda 里面的。
我不确定什么时候可以实现,因为这两个星期的重心不在 Emacs 上,如果你真的非常需要,以下是一点提示:
- org-supertag 的数据库结构,有 2 个对象,一个是 objct, 一个是 link。对象下面又分 :type,目前 node 和 tag 都是 objct 的一个 :type。
- objct 类型数据对象录入数据库的命令是 org-supertag-db-add,只要解析了文件中的 tag(不包含 #+FILETAGS),就可以添加到数据库。
- 用于解析 org 文件的函数是 org-supertag-db–parse-node-at-point,扫描文件的时候,你只需要调用它就可以了。
- 你也可以参考 org-supertag-sync.el 里的例子。
谢谢!我去看看。
我觉得这个scan指定文件夹的功能应该是有一定需求的,因为对新的org-supertag用户来说,将已有的tag加入supertag管理是导入supertag的一个自然需求。仅供参考。
yibie
6
是,需求是存在的。不过,如果真的这么干的话,相当于我要抛弃掉之前 :#tag: 的方式,直接使用传统的 :tag:。这影响到了 org-supertag 运作的基础运行的机制。至于为什么要区分开,我之前也已经说了我的理由。
所以我偏向于,如果可以用一个 elisp 脚本来解决这个问题是最好的,就不必在基础代码上动刀。
还有就是,的确最近需要缓一缓,要将注意力投放到其它地方。
非常理解你的开发原则。您的原则我也很同意。
可能我的表达有问题,我指的功能并不是要supertag和传统的tag或者agenda统一,而是类似一个import功能,用户给定一个folder,supertag扫描一下,然后把之前的tag纳入supertag体系。这个功能大概只是新用户在第一次使用supertag的时候做一下(有的人可能根本也不需要)就可以了。之后在使用supertag的时候都是一个独立的workflow,和现有的org-agenda什么的不相关。
也可能是我对您的实现有误解,所以才有以上的想法。
仅供参考而已,不用在意。
yibie
8
我没误解。你现在回复我的,跟我想的是一样的。只不过我觉得用一个独立的小脚本来处理会更加方便。以及,我说明了只是最近没状态。不是否定你的想法。
非常感谢。我这段时间也有点忙。回头试试您的脚本,再聊。