代码之家  ›  专栏  ›  技术社区  ›  julien

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

  •  30
  • julien  · 技术社区  · 15 年前

    我使用组织模式已经有一段时间了,目前我只保留了两个文件,非常简单:
    一个作为收件箱,带有记忆模式
    另一个我只关注收件箱中处理过的内容

    这对于管理一些“可操作”的项目很好,但是我不断地添加一些更一般的东西,这些东西我不会每天都需要(如何操作、阅读笔记等),所以管理起来越来越慢和困难。

    我所关注的材料不符合/项目/任务/子任务范例,它们更像是选定主题上的小知识块,本质上更复杂的分类和管理。

    我一直在想什么样的结构可以用来处理这种信息(分类和检索),如果有其他的模式可以帮助工作?


    我想这个问题没有预先的答案,因为每个人都可能有不同的需求。
    名词的 gave good conceptual tips 我会记住这一点,但总的来说,公认的答案提供了更务实的观点,链接的资源是一个伟大的阅读。

    8 回复  |  直到 15 年前
        1
  •  27
  •   vedang    15 年前

    我认为这篇关于如何充分利用组织模式的优秀文档将对您非常有帮助: "Org Mode: Organize Your Life In Plain Text" . 这本书读得很长,但相信我,完全值得付出努力。

    更新: 你可以使用 remember-mode section 在您的用例文档中提到。(我在同一个用例中使用它)记住模式对于快速记笔记非常方便。当我必须存储随机观测或信息时,我会使用它,而这些观测或信息不会去任何其他地方。我使用以下模板来记住:

    (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)
        ))
    

    如您所见,misc notes和其他信息放在notes.org文件的标题misc and information下。如果我所做的注释不属于上面定义的任何类别,它将被归档到默认文件(remember notes.org)中,并且我可以在方便的时候将其重新定位到其他位置。这使得我记笔记,记下一些随机的想法,这些事情非常简单,而没有把注意力从我目前正在做的工作上移开。

        2
  •  7
  •   Norman Ramsey    15 年前

    [组织模式]非常适合管理一些“可操作”的项目,但我不断添加一些更一般的内容,这些内容在日常工作中是不需要的(如如何操作、阅读笔记等),因此管理起来越来越慢和困难。

    我是大卫艾伦和他的追随者 Getting Things Done 方法论。我用emacs列出了他推荐的三个列表:

    • 下一步行动

    • 项目资源

    • 某一天/可能的清单

    我所关注的材料不符合/项目/任务/子任务范例,它们更像是选定主题上的小知识块,本质上更复杂的分类和管理。

    我一直在想什么样的结构可以用来处理这种信息(分类和检索),如果有其他的模式可以帮助工作?

    对于这种信息,我已经从Emacs迁移出去了。相反,我保留一个目录 ~/etc/howto 在这个目录中,我将包含“所选主题上的小知识块”的文件放入其中,关键标准是 信息具有长期价值 .

    我可以用emacs搜索这个目录,但是我的emacs lisp不太热,所以我写了一个 howto shell脚本(为了清晰起见,省略了一些错误检查):

    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
    

    示例包括:

    • howto football 按以下顺序显示三块金块:

      • 关于如何在计算机上录制足球比赛的说明

      • 当我有一场足球比赛的票的时候,我应该知道该拿什么和怎么穿衣服。

      • 转码足球比赛的说明,以便它可以通过网络传输并在家外观看

    • howto filesystem 显示有关如何复制文件系统的说明

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

    我不使用Emacs的一个原因是,我真正的脚本比上面看到的要复杂一些:它还处理PDF和DJVU文件,例如 howto razor 我的电动剃须刀带来了一份DJVU手册。

    我在主目录或子目录中有500多个项目,即使按这个比例,这个系统对我来说也非常好。我希望你会发现它也有帮助。

        3
  •  7
  •   Noufal Ibrahim    15 年前

    我个人保留了一个项目目录列表,其结构有些相似。每一个都有一个tasklist.org,一个跟踪子目录(我在这里做项目评估和时间跟踪,并且总是维护一个日志,它是 主要的 项目内容——它将链接到项目的其他文件),一个通常由我要发布的内容(项目的文档、建议等)组成的docs子目录。我把我的议程文件放到每个子目录中的tasklist.org,这样我的议程就可以正常工作了。


    我认为在您的情况下,数据的组织会有一些变化(可能是“功能性编程”等主题)。我怀疑等级结构会有多大帮助,因为这会限制你以一种方式看待事物(标签和文件夹)。下面是一些事情。

    1. 保留一个“主”组织文件,该文件链接到所有“有趣的”顶级内容(类似于我上面提到的日记)。
    2. 正确标记你所有的材料(你会在一段时间后固定在一组有用的标签上),然后使用标签搜索功能快速搜索文件。这假定所有文件都在 agenda-files 尽管如此。
    3. 最后,如果您的数据太奇特,无法放入结构中,您可以考虑使用全文索引器(如xapian)并将其集成到Emacs中。有人讨论过这个 here .
        4
  •  5
  •   Upgradingdave    15 年前

    过去我尝试过几种方法来管理知识库。我有一堆“知识金块”(顺便说一句,谢谢,我非常喜欢这个词),涉及各种各样的主题,从如何建立Apache Tomcat SSL证书,到每月家庭预算检查表,到保持完成训练的体重和重复次数列表。

    我试过把它们保存在WordPress博客、个人维基、使用笔和纸等。

    最后,emacs和org模式对我来说是绝对的赢家。我喜欢能够从简单开始,并根据需要构建更复杂的功能。我使用了很多 Sacha Chua .

    在我的例子中,我总是以一堆笔记(更正式和更有组织)和动作项目(不太正式)混合而告终。通常,我维护一个主“操作项”列表,然后为每个主题的注释创建一个单独的文件。到目前为止,grep已经为我很好地快速找到包含注释的文件。我经常会创建一个Emacs书签 C-x r m 也可以快速导航到Notes文件。

    简单的博客、CMS和维基(如Drupal和Wordpress)擅长分类和检索。也许你可以将组织文件导出到HTML并发布到博客、CMS或维基?加入blog/wiki/cms标记功能可能并不难。

        5
  •  4
  •   Tom Anderson    15 年前

    在工作中,我们使用一个wiki(实际上是几个,一个全球wiki加上一个每个项目的wiki)。它非常适合于非层次数据,但也可以用于层次数据。它是可格式化的、超文本的、可链接的、可搜索的、可共享但也可拥有的,它维护着历史和其他好东西。

    就我个人而言,我也曾用过wiki。但最近,我通常只是忘记了一些事情。容易得多。

        6
  •  3
  •   Peter Westlake    15 年前

    您可以通过将笔记保存在一个单独的文件(或每个广泛的主题一个)中来加快组织模式,该文件不包含在常规的议程文件列表中。自定义 org-agenda-files 查看列表。

    使用 org-remember 快速输入注释而不中断您的流程。要么在当时标记它们,要么将它们保存到某个地方以便稍后重新安装。您可以在“记住”模板中使用标记(自定义 org-remember-templates )标记笔记以便重新整理,并使用自定义议程搜索( org-agenda-custom-commands 列出它们。

    用相关主题标记每个笔记,并使用“议程”视图的搜索工具查找它们。您可以定义一个自定义搜索,它知道要查找正确的文件,或者您可以访问该文件并将议程搜索限制为仅搜索该文件。

    我保存了一个笔记文件,你的问题激励我回去把它们都贴上标签。奏效!

        7
  •  3
  •   gavenkoa    9 年前

    我在一个目录中的.rst(restructuredtext)文件中保存提示。每个文件都有自己的主题。

    我用的搜索 M—X出现 M×LGRIP M- X ACK .

    Web托管示例: http://tips.defun.work/frame.html 而且很容易将这些页面变成类似博客的解决方案。

    具有生成脚本的原始源: http://hg.defun.work/tips/

    主要优势 重构文本 格式:

    • TOC支持。
    • include 语法。
    • 能够在HTML站点中构建基于javascript的全文脱机搜索索引,其中包含toc、index、reference by 狮身人面像 !!
    • 记得 降价 吸吮在可扩展性,RST有规则的语法标记您的令牌数据,并包括任何纯文本格式作为内联到您的文档。思考图形 dot ,prog lang语法突出显示等。
        8
  •  2
  •   Drew    13 年前
    • 我所关注的材料不符合/项目/任务/子任务范例,它们更像是选定主题上的小知识块,本质上更复杂的分类和管理。

    使用书签和 Bookmark+ . 您可以为创建书签 集合 文件和目录,除了单独的文件,您还可以 tag 书签或文件,LA delicious ,用于组织和搜索。