使用emacs管理生活

Table of Contents

  1. 使用emacs管理生活
    1. 关于这篇文章
    2. 一天应该从一杯牛奶开始吗?
    3. 一天从emacs开始
    4. 来个番茄?
    5. 不能煮咖啡的编辑器不是一个好操作系统
    6. 附件

使用emacs管理生活

关于这篇文章

很久没有写文章了,我是在一周前决定在今天写这篇文章的,用来分享我在emacs上的实践。在这周里,我有时闲下来会想到这篇文章的一些碎片,零零散散,错落有致。

我是在一两周前转到emacs的,在之前我一直使用vim作为我的编辑器。当然,只是编辑器,因为我的大部分时间都是用来编辑文本(代码、配置)。

我转到emacs,最开始是借助了spacemacs,它让我看到了emacs与vim共存的可能。但是因为spacemacs过于范化,不能满足我自己的使用习惯,我决定开始打磨自己的emacs配置。

emacs最令人惊叹的是org-mode,或者更准确地说,围绕org-mode建立起的生态。如果你没有尝试过,建议你在合适的时间研究一下这个模式,相信我,它会彻底改变你的生活方式。

由于这篇文章主要是分享自己的一些感受,所以不会涉及太多代码(你知道的,在emacs的世界里,存在大量elisp代码片段)。

一天应该从一杯牛奶开始吗?

每个人都有自己的节奏,我以前的节奏就是,混乱地开始和混乱的结束一天的生活和工作。如果我们有能力使这种模式免于混乱,便可以得到一个更为高级的名字,叫做自底向上的生活方式,过好当下,然后等着上天赐予我们最好的礼物。拖延症患者的生活方式并不是自底向上,而仍处于混乱状态(譬如我),所以还算不上自底向上。

对应的方式就是自顶向下了,我们可能会制定一个N年的计划,比如一个长达三年的学习计划,然后逐步分解去执行。不过实际情况往往会跟目标有出入,可以选择分片段逐步细化的方式。

在经历过长达数年的混沌时期后,我决定让自己逐渐适应并且切换到了第二种方式。我需要一个理论支持,最好是已经成熟并且有很多人实践过的理论。于是我找到了GTD。

关于GTD(Get Things Done),有一些专门的书籍可以学习。不过在我看来,一个好的实践,一定是不需要太多繁杂步骤的,简单而且行之有效。所以我并没有从头到尾阅读书籍,而是了解了GTD的思想,以及它的大体步骤。

GTD最核心的思想,可以用一句话来形容:将头脑中的想法记录到载体上。这样做的好处是什么呢?

首先,大脑没有了负担。设想之前的工作或生活,突然,脑海中想起了一件事,去做或者一会去做,有可能一会又忘记了,大脑承担了很多思考外的低级功能。

其次,待办更清晰了。只要我们能拿到所有的待办,就可以对待办进行评级、排期。只要一件事情做好了排期,我们只要等到对的时间去做就可以了。

一句话,解放大脑,提高专注力。

官方的GTD步骤有五个,我在这里整理下我的实践步骤:

  1. 收集:将大脑中的想法、邮件收件箱或其它的工具的信息收集起来。对于记录脑中的想法而言,手机是很方便的一个工具,我喜欢使用mac自带的Notes来记录脑海中一闪而过的想法,还可以直接同步到电脑端打开,再次处理都很方便。

  2. 整理:收集到的信息,需要进行再次处理,明确意义后归类。比如一个待办的具体定义,要归放到哪个项目下。

  3. 排期:对待办设置优先级,并查看自己的排期,将待办加入到自己的排期中。我自己一般不会对某个待办设置优先级,而是直接对待办所属的项目制定优先级。比如,我在跟进一个非常重要的项目,那它下面的待办就理应具有更高的优先组。

  4. 执行:这个步骤就相对简单了,因为信息已经做了梳理和排期,到了合适的时间,按照计划执行就可以了。

当然,第4个步骤简单,但也困难。困难之处在于,有很多情况是我们预料不到的情况。比如,可能会有其它同事来打断,或者有更高优先级的突发事件,这就需要我们根据其它方法论来处理了。碍于篇幅,这种情况我们暂不展开。

讲了这么多,还没有回答上面的问题。一天应该从一杯牛奶开始吗?对于我来说,答案是否定的。我的一天是从GTD开始的。

一天从emacs开始

市面上有很多GTD工具,可惜我都没使用过。我的工作几乎全部使用电脑完成,所以需要一个更加无缝操作的GTD工具,它最好不用分散我太多的注意力。

emacs里有一个org-mode,可以用来管理TODO列表,例如修改TODO列表状态,对TODO排期,或者记录TODO用时。

org-agenda是一个org-mode的相关工具,可以自定义项目的TODO列表的展示逻辑,比如显示今天有哪些代办,或者显示有哪些项目处于stuck状态(某个项目下没有TODO列表)。

用一句很装逼的话来说,“我已经一点都记不起明天需要做什么了”。这应该是我的一个追求吧,现在还没有完全达到。

到公司后,我的第一件事就是打开emacs。我对它进行了一些配置,打开软件后它会自动为我显示这一天的待办记录,这一天将从查阅待办开始。

在开始某一个待办前,我会使用org-clock-in对待办进行计时,以此来跟踪我在一个待办上花费的时间,并且在完成一个待办后休息一小段时间。

世界从未如此高效而轻松。

来个番茄?

我还找到一个提高专注能力的工作,番茄钟。

发明者为了提高自己的效率,发明了一种时间分片的方式,每25分钟为一个番茄钟,每个番茄钟结束后休息5分钟,每4个番茄钟休息15分钟。

这是一种很好的时间管理方式,它能让我们感知到时间的流逝,更好的对某件事所花费的时间做出评估。

我曾经实践过这种方法,但是发现它过于死板不够灵活,于是根据自己的需要进行了部分改造。

仍然是25分钟一个番茄钟,但是我可以在必要的时候提前或推迟结束时间。比如,某个待办进行的很顺利,20分钟就完成了,那我会选择提前结束这个番茄钟;如果某个待办需要30分钟,我可能会选择延迟5分钟。当然,有一种情况是这个待办需要1个小时,我会在25分钟左右,在合适的时机结束番茄钟。

一句话,节奏感很重要。节奏感是一种感觉,即是感觉,就会因人而异,需要找到适合自己的方式或节奏。

emacs是有包来专门提供番茄钟功能的,我没有使用。在我看来,没有太大的意义。

不能煮咖啡的编辑器不是一个好操作系统

你可能已经听说了,emacs是一个操作系统,而非编辑器。

这并非对emacs的嘲讽,实际上我认为这是对emacs的高度评价。

我想先谈一下gnu/linux或者windows操作系统,如果细想一下,“操作系统”这个词并不是很准确,如果你用过gnu/linux,你可能会同意我这个观点:gnu/linux更像是一个资源管理系统,它的任务更多的是接管底层硬件资源并提供调度方式以最大化使用效率。gnu开发了一个套件,用来实现一些与用户交互的功能,但是这是不够的,我们很多时候还是会安装许多额外工具。

所以称emacs是一个操作系统其实蛮贴切的,错的不是emacs,而是操作系统的定义。

你可能也听说过一种现象,emacer们倾向于把自己想要的所有功能都记录到emacs里,他们在emacs里浏览网页,阅读rss,收发邮件,可能甚至有人想用它来控制自己的洗衣机。

我想试着来解释下这种现象,前面我们说过emacs是一个操作系统,甚至它比gnu/linux做得还好,因为它高度定制,且有一致的操作风格。你可以把它看做是一个根据使用者的使用习惯高度特化的操作环境。

举个例子,比如我现在在编辑当前这篇文章,但是感觉这个自然段的表达方式有点问题,但是现在我的关注点是先把这篇文章写完,此时我可以使用remember命令调出一个临时记录note的buffer,记录一下现在的想法,这时想法就被记录到一个叫做remember-notes里了。我可以继续编辑这篇文章,使我的思绪被打算的可能性降到最低。

所以答案就很简单了,因为这个“操作系统”里已经集成了很多可用的工具,如果把另一个工具集成进来,效率和便利性会成指数级增长。

但是这是一个致命的诱惑,你感觉这是一个充满花蜜的骨朵,很有可能它会把你粘住拖进它的花苞消化分解掉,变成它的食物。

如果你像我一样,没有太多的精力去做这些看上去很有乐趣的事情,那就一定要克制住自己了,一定要守住自己的边界,知道什么不可以做。

附件

img

当前正在做的事情被高亮显示(图中为黄色),且会在modeline显示。

如果某个昨天的待办没有完成,Scheduled会变成Sched. 1x,并被加到今天。比如,写作emacs使用实践和腹肌撕裂者两个待办昨天都没有完成(现在已经是第二天的00:22)了,所以被加到了今天。

有一种任务是每隔几天就做一次,比如刮胡子这个待办需要每三天做一次,使用 2019-03-03 Sun +3d 时间,系统就会每三天生成一个待办。

img

我喜欢给一些需要随意做的任务记录时间,这样就可以知道我做某件事的整个时间周期了。成就感悠然而生。