将Emacs Org任务树导出至Freeplane思维导图
Emacs Org mode作为实施GTD方法的任务与项目管理工具是极为强大和有效的。尽管如此,我在使用过程中亦发现了一个因Emacs文本操作模式而难以解决的情况,即对于具有复杂结构与大量细节的项目,在Org mode中只能进行单个或数个细节任务的查看而无法与此同时进行整体架构浏览以及呈现不同子任务间的复杂关系,也就是陷入了我们常说的“只见树森不见林”的状态。在刚创建项目任务时这个问题还不那么明显。随着任务复杂度与数量的增加,很容易导致不少(尤其是不那么重要的)任务虽然被如实地记录下来,但最终还是被尘封在了Org mode文件的某个子树上。
针对这个情况,想到思维导图是用于整理与规纳具有复杂结构信息的利器,将Emacs Org mode任务导出到Freeplane中用思维导图的方式进行管理便很有必要的了。具体的做法详述如下。
首先,在~/.emacs中加入下面两行,从而将Freemind文档格式加入到Emacs Org mode文档导出后台列表中:
(require 'ox-freemind)
(setq org-export-backends '(freemind odt latex icalendar html ascii))
然后,在Org mode文件中选中要导出的任务树,按快捷键Ctrl+c, e导出,然后选择:
[f] Export to Freemind Mindmap
[f] As Freemind Mindmap file [o] As Freemind Mindmap file and open
由于Emacs编辑器默认使用的是utf-8编码,
(prefer-coding-system 'utf-8)
所以,导出的*.mm思维导图文件也是该编码格式。然而,在默认条件下(至少是Windows下)启动Freeplane时采用的并非utf-8编码,从而导致如果在从Emacs Org mode导出的思维导图中含有中文字符的话,就会在Freeplane中显示为乱码。为此,需要使Freeplane的默认编码为utf-8。然而,找遍了Freeplane的所有对话框设置,并没有相关设置项。通过搜索,由这里发现,可以通过加入JVM环境变量选项-Dfile.encoding=UTF8来解决。
对于GNU/Linux来说,一如继往地可以将其加入到~/.bashrc中:
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dsun.java2d.xrender=true -Dfile.encoding=UTF8 $_JAVA_OPTIONS"
对于Windows版本,需要找到Freeplane的安装路径(我的为D:\Program Files\Freeplane),将其加入到启动配置文件freeplane.l4j.ini中。当然,也可以加入到freeplane.bat中。但这样一来,双击图标执行Freeplane时,该文件编码设置就无法生效了。
最后,就可以用Freeplane打开导出的*.mm文件,进行进一步的编辑与组织了。效果如下图所示。
将Emacs Org任务树导出至Freeplane思维导图的更多相关文章
- 在Emacs中画思维导图
是的,你没有看错.其实,不只画思维导图,画结构图.流程图等,都可以.那怎么办呢?就是借助 Graphviz . Graphviz 可以方便地表达概念之间的联系,因此用它画思维导图是可行的,再加上它是个 ...
- 可以把思维导图导出为word文档方便其他人查看吗?
MindManager除了强大的大纲视图编辑功能外,还拥有多种导出格式,方便大家迅速导出文件,在团队中分享自己的观点,提高团队的工作效率,本次小编使用的思维导图软件版本是MindManager 202 ...
- MindManager使用教程:如何导出HTML5交互式导图
Mindmanager思维导图软件有着友好的用户界面以及丰富的思维导图制作功能.再搭配与Microsoft 软件的无缝集成功能,使得这款思维导图软件越来越受到职场人士的喜爱. 不仅是作为制作思维导图的 ...
- [数据结构]ODT(珂朵莉树)实现及其应用,带图
[数据结构]ODT(珂朵莉树)实现及其应用,带图 本文只发布于博客园,其他地方若出现本文均是盗版 算法引入 需要一种这样的数据结构,需要支持区间的修改,区间不同值的分别操作. 一般的,我们会想到用线段 ...
- HDU 4000 Fruit Ninja (树状数组+反向思维)
题意:给你一串数且每个数都不同,问你(x,y,z)出现 x<z<y 的总次数 首先我们直接想的话不能使用O(n*log2 n)解决,所以可以正难则反 可以求得x<(y,z)的值,减去 ...
- 模拟赛 提米树 题解 (DP+思维)
题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子. ...
- hdu 5792 树状数组+离散化+思维
题目大意: Given a sequence A with length n,count how many quadruple (a,b,c,d) satisfies: a≠b≠c≠d,1≤a< ...
- 浅谈可持久化Trie与线段树的原理以及实现(带图)
浅谈可持久化Trie与线段树的原理以及实现 引言 当我们需要保存一个数据结构不同时间的每个版本,最朴素的方法就是每个时间都创建一个独立的数据结构,单独储存. 但是这种方法不仅每次复制新的数据结构需要时 ...
- BZOJ - 3489 KD树 范围计数 空间思维转换
题意:给定数列\(a[1...n]\),\(Q\)次查询\([L,R]\)中只出现一次的最大值 这道题的做法比较劲.. 对每个元素构造三维空间的点\((i,pre[i],next[i])\),查询\( ...
随机推荐
- 操作docker容器
Docker容器时镜像的一个运行实例,而镜像是静态的只读文件,容器带有运行时需要的可写文件层.如果认为虚拟机是模拟运行的一整套操作系统(包括内核.应用运行的环境和其他系统环境)和跑在上面的应用,那么D ...
- oracle创建表空间等相关语句
在数据库可视化工具中执行以下语句,可建立Oracle表空间. 主要分为四步 1.创建临时表空间 create temporary tablespace xuanwu_temp tempfile 'D: ...
- Centos7 systemctl服务脚本
systemd.service 参考文档 RHEL6和之前的版本使用的初始进程是init,init是一个线性的启动过程,一个接一个的启动,比较慢:systemd则可以多进程启动,速度提高很多. sev ...
- C/C++ const
一 含义 const修饰的变量在C和C++中的含义是什么?一样吗? 在C中用const修饰的变量仅仅表示这个符合表示的变量不能被赋值,是只读的,那么它与常量有啥区别呢?区别就是一个是常量,一个是变量. ...
- [SCOI2015]小凸想跑步
题目描述 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸 n 边形, nn 个顶点按照逆时针从 0 ∼n−1 编号.现在小凸随机站在操场中的某个位置,标记为p点.将 p ...
- 洛谷P5289 皮配
解:观察一波部分分. 首先小数据直接暴力4n,然后考虑背包.设f[i][a][b][c]表示前i个学校中前三位导师分别有多少人,第四位导师可以直接推出来. 然后暴力枚举每一个人放在哪进行背包. 进一步 ...
- Mock6 moco框架中如何加入header
新建一个 startupWithHeader.json,这次在request里面添加了headers属性 [ { "description": "这是一个带header的 ...
- CMDB服务器管理系统【s5day89】:深入理解Java的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用, ...
- wxpython多线程通信的应用-实现边录音边绘制音谱图
#!bin/bash/python # -*- coding=utf-8 -*- from __future__ import division import threading import wx ...
- PageRank算法--从原理到实现
本文将介绍PageRank算法的相关内容,具体如下: 1.算法来源 2.算法原理 3.算法证明 4.PR值计算方法 4.1 幂迭代法 4.2 特征值法 4.3 代数法 5.算法实现 5.1 基于迭代法 ...