试试这个?
也可以试试 org-remark
这个看着很不错呀,周末试试,感谢!
在org中自定义一个link type就可以记录对应代码文件的路径和行号,但有个问题是,如果在文件内容修改了,怎么更新位置信息。
是的,这就是我开这个帖子的原因。。。
我也有类似需求
我看代码经常喜欢在org中这样记录
- func1 说明
- func2 说明
- func3 说明
- func_s 说明
我希望func3是个链接,点击一下func3,就可以打开代码文件并跳转到对应位置。
有个 org-remark
为什么不把笔记直接写在代码注释里呢?
有可能是别人的源码
可以试试这个。
我需要记录的时候,会用 org-capture 创建一个独立的 heading 到一个 org 文件里,然后在 heading 下做记录。
这个包可以复制粘贴代码位置,将位置粘贴在一个文件里,自己备注相关信息,从而实现追踪一个功能上下文。
应该能满足你的第 1, 2 点的需要吧,不过好像链接是不会自动更新的。
我写过一个包anote(或者anotes),看起来大概能满足你的需求。
不过有这么几个问题:
可以在我github账户zbelial下找找,看合不合适。
我之前读某些源文件时,因为文件的某些位置太难找(层级超级多),文件关掉后下次在找到这个位置不容易,如果记录行号,行号位置会变,更新麻烦。 于是我就在注释里打了一些16进制符号,如c-q c-n
,,这个类型的符号在emacs中显示为一个像^+大写字母
的样子,在浏览器或其它编辑器显示就是方框了。
然后下次我要找到这个位置,就搜索这个符号能定位到。代码有改动时也不影响,还是能找到原来的位置,但如果把我打在注释里的特殊符号 删除掉,那个就没办法了
注:这个符号我写上面文字时是打上去的,但论坛应该是做了什么过滤显示不出来
Org 文学编程不就是干这个的吗?
如果代码文件夹好几层,org-remark
会在每个目录下生成一个总的 marginalia.org
文件。
喜欢少生成一些无关文件的话,可能 annotate.el
更适合一些,只会有一个单独的数据库文件。
fork一份专门写注释,后续还能merge
我觉得你这个需求最适合用doxygen……供参考
可以用关键词/正则表达式匹配
#+LINK: workflow file:~/codes/T-field/workflow.py::def %s
#+LINK: workflow_c file:~/codes/T-field/workflow.py::class %s
#+LINK: workflow_reg file:~/codes/T-field/workflow.py::/^\(class\|def\).*%s/
跳转到 workflow.py 的 Accumulator 类:
[[workflow_c:Accumulator]]
跳转到 workflow.py 的 drop 函数:
[[workflow:drop]]
跳转到 workflow.py 的带有 drop 关键词的类或函数的签名行:
[[workflow_reg:drop]]
当然如果你改了项目地址和函数签名之类的,还是得手动更新链接
是个好思路。
一个用来写注释的,没什么笔记相关的功能
和行强相关,git记录中做笔记的那一行如果被删除了,笔记也就不显示了;回退到之前的版本重新显示