如何维护基于emacs的知识库?

jul*_*ien 32 emacs knowledge-management org-mode

我一直在使用org-mode一段时间,我现在保持它非常简单,只有两个文件:
一个用作收件箱,
另一个用于记住模式,我只是粘贴任何已处理过的东西收件箱

这对于管理有些"可操作"的项目非常有用,但我不断添加更具一般性的东西,我不需要日常工作(如何,阅读笔记等),所以它正在变得越来越好缓慢而难以管理.

我自己关注的材料不适合/ projects/tasks/sub-tasks范例,它们更像是选定主题的小知识块,这些知识本身在分类和管理方面更加复杂.

我一直想知道可以使用什么样的结构来处理这种信息(分类和检索),以及是否有其他模式可以帮助完成这项工作?


我想这个问题没有预先答案,因为每个人都有不同的需求.
Noufal 给出了很好的概念提示,我会记住,但总的来说,接受的答案提供了更实用的观点,链接的资源是一个伟大的阅读.

ved*_*ang 29

我认为这篇关于如何使用组织模式以获得最大潜力的优秀文档将对您非常有帮助:"组织模式:用纯文本组织您的生活".这是冗长的阅读,但相信我,完全值得努力.

更新:您可以使用文档中提到的记住模式部分作为用例.(我将它用于相同的用例)记住模式非常方便快速记录.当我必须存储随机观察或不会出现在任何其他地方的信息时,我会使用它.我使用以下模板记住:

(setq org-default-notes-file (concat org-directory "/remember-notes.org"))
(setq org-remember-templates
  `(("Todo"    ?t "* TODO %?\n  %i\n" ,(concat org-directory "/remember-notes.org") bottom)
    ("Misc"    ?m "* %?\n  %i\n"      ,(concat org-directory "/Notes.org")   "Misc")
    ("iNfo"    ?n "* %?\n  %i\n"      ,(concat org-directory "/Notes.org")   "Information")
    ("Idea"    ?i "* %?\n  %i\n"      ,(concat org-directory "/Notes.org")   "Ideas")
    ("Journal" ?j "* %T %?\n\n  %i\n" ,(concat org-directory "/journal.org") bottom)
    ("Blog"    ?b "* %T %? :BLOG:\n\n  %i\n" ,(concat org-directory "/journal.org") bottom)
    ))
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,misc注释和其他信息在标题Misc and Information下的notes.org文件中.如果我正在制作的音符不属于上面定义的任何类别,它将被归档到默认文件(remember-notes.org)中,并且我总是可以在方便的时候将其重新填充到另一个位置.这使得我记笔记,记下随机的想法,这些事情非常简单,而不会把焦点从我目前正在做的工作上移开.


Nou*_*him 9

我个人保留一个项目目录列表,其结构有些类似.每个都有一个tasklist.org,一个跟踪子目录(我做项目估计和时间跟踪,并始终保持日记,这是项目的主要内容 - 它将链接到项目的其他文件),一个docs子目录,通常包括我要发布的内容(项目文档,提案等).我将我的议程文件发送到每个子目录中的tasklist.org,以便我的议程正常工作.


我认为数据的组织会在您的情况下发生一些变化(可能是"函数式编程"等主题).我对层次结构有多大帮助持怀疑态度,因为这会将你限制在一种看待事物的方式(标签与文件夹再次).以下是一些想到的事情.

  1. 保留一个"主"组织文件,其中包含指向其他内容的所有"有趣"顶级片段的链接(类似于我上面提到的日记).
  2. 正确标记所有材料(一段时间后你会选择一组有用的标签),然后使用标签搜索功能快速搜索文件.这假设所有文件都在您的文件中agenda-files.
  3. 最后,如果您的数据太奇特而无法放入结构中,您可以考虑使用全文索引器(如xapian)并将其集成到您的Emacs中.有过这方面的一些讨论在这里.


Nor*_*sey 8

[org-mode]非常适合管理有些"可操作"的项目,但我不断添加更为一般性的东西,我不需要日常工作(如何,阅读笔记等) ,所以它变得缓慢而且难以管理.

我是David Allen的追随者和他的Getting Things Done方法.我在他推荐的三个列表中使用Emacs:

  • 下一步行动

  • 项目资源

  • Someday/Maybe列表

我自己关注的材料不适合/ projects/tasks/sub-tasks范例,它们更像是选定主题的小知识块,这些知识本身在分类和管理方面更加复杂.

我一直想知道可以使用什么样的结构来处理这种信息(分类和检索),以及是否有其他模式可以帮助完成这项工作?

对于这种信息,我已经远离emacs.相反,我保留了一个目录~/etc/howto,并在该目录中放置了包含"在所选主题上的小知识块"的文件,其中关键标准是信息具有长期价值.

我可以用Emacs搜索这个目录,但是我的Emacs Lisp不是那么热,所以我编写了一个howtoshell脚本(为清楚起见省略了一些错误检查):

case $# in
  1) ;;
  *) echo "Usage: $0 <topic>" 1>&2; exit 2 ;;
esac

topic="$1"

# Note the ordering: first exact matches, then beginning matches, then any matches

set xxx `find $HOME/etc/howto/. -name "$topic"     -not -type d -print` \
        `find $HOME/etc/howto/. -name "${topic}?*" -not -type d -not -name '*~' -print` \
        `find $HOME/etc/howto/. -name "?*$topic*"  -not -type d -not -name '*~' -print`
shift

case $# in
  0) echo "No file found matching *$topic*" 1>&2 ; exit 1 ;;
  *) for i
     do
       less "$i"
     done
     ;;
esac
Run Code Online (Sandbox Code Playgroud)

例子包括:

  • howto football 按顺序显示三个块:

    • 关于如何在电脑上记录足球比赛的指示

    • 当我有足球比赛的门票时,指示我准确地采取什么以及如何打扮

    • 转换足球比赛的说明,以便它可以通过网络传输并远离家庭观看

  • howto filesystem 提出了如何复制文件系统的说明

  • howto batteries 列出推荐的可充电电池列表

我不使用Emacs的一个原因是我的真实脚本比你上面看到的要复杂一点:它还处理PDF和djvu文件,所以举例howto razor说明我的电动剃须刀附带的手册的djvu文件.

我在主目录或子目录中有超过500个项目,即使按照这种规模,系统也能很好地适用于我.我希望你也觉得它也很有帮助.


Upg*_*ave 6

我曾尝试过多种方法来管理过去的知识库.我有各种各样的"知识块"(顺便说一句,谢谢,我非常喜欢这个术语)各种各样的主题,从如何设置apache tomcat ssl证书,到每月家庭预算的清单,到保持在训练中完成的重量和代表清单.

我已经尝试将这些保存在wordpress博客,个人维基上,使用笔和纸等.

最后,emacs和组织模式对我来说是明显的赢家.我喜欢有能力开始简单,并根据需要构建更复杂的功能.我使用了Sacha Chua描述的很多技巧.

在我的情况下,我总是把一堆笔记(更正式和有组织)与行动项目(不太正式)混合在一起.通常,我维护一个主"操作项"列表,然后为每个主题的注释创建一个单独的文件.到目前为止,grep对我很有效,可以快速找到包含注释的文件.我经常会创建一个emacs书签,C-x r m以便快速导航到笔记文件.

简单的博客,CMS和wiki(如Drupal和Wordpress)擅长分类和检索.也许您可以将组织文件导出为html并将其发布到博客,cms或wiki?挂钩blog/wiki/cms标记功能可能并不困难.


Tom*_*son 5

在工作中,我们为此使用了一个 wiki(实际上,有几个 - 一个全局 wiki 加上每个项目一个 wiki)。它非常适用于非分层数据,但也可用于分层数据。它是可格式化的、超文本的、可链接的、可搜索的、可共享的但也是可拥有的,它保留了历史,以及其他好东西。

就个人而言,我曾经也为此使用 wiki。但是这些天,我通常只是忘记事情。容易多了。

  • 我没有将您的问题理解为需要基于 emacs 的解决方案,因此我的回答是。但是,emacs 有 wiki 编辑插件,所以这仍然是相关的! (3认同)