右舷

宇宙,人类最后的边疆

###最重要更新:预算

这是一项从记账软件中学到的功能,(邹老师在试用了iTimeLog之后也提了这个建议)设置预算,所谓预算就是你事先设定了这一天中你应该花多少时间在哪件事情上面。

budgetSetting

先来看看设置界面,我们设计几个可设置的点,你可以设定这个预算是属于类型的预算,还是事件预算。事件预算当然是指单个事件,例如我设置了每天为公司工作7小时以下,这当然不是为了摸鱼,而是一种效率要求,我希望7小时完全成别人8小时的工作,多出来的1小时完全可以为用做投资用(这里的投资是指重要而不紧急的事)。

对于看漫画,看美剧,喝喝咖啡聊聊天这些活动,统计为消遣,设置每天不超过3小时实际是对自己是很好的,一般通过2个小时就很幸福了。

除此之后,还可以设置预算是不是“仅工作日”的预算,工作日预算指的是每周只算周一到周五。

接下来让我们看看统计结果。

budgetShow

统计结果现在只在统计列表中,我们做预算时只做了日预算时间,周预算和月预算其实是根据日预算累加出来的,如果是工作日事件,累加时会自动刨去假日。在这里我们用红色代表未达到预算要求(不管是多了还是少了)。绿色表示安全达成预算。

上图是我这个月的实际统计结果,可以看出工作和消遣都在最初的计划内,但是投资时间还差少许。

根据这个结果可以为下个月做出更好的预算,定出更好的目标了。

dontwarning

###免打扰

作为上版推出通知功能的一项补充。我们在本版加入了免打扰功能,因为我们发现如果你设定了退出程序之后隔一段时间提示,iTimeLog有可能会在不适当的时间发出通知,比如说在睡眠时间每隔25分钟提示一次,这是很烦人的。

很抱歉我们之前考虑不周,这一版我们补上了这一缺失,您可能设定iTimeLog在一天中的任一时段保持静默。

###其它改进:

####下滑收键盘

在主输入界面中,出现键盘或模版选择时,下滑列表,自动收键盘。

####类型显示事件

从类型列表进入详情列表时,显示具体对应的事件名称。

这一版在苹果审核的抽屉里放了两周多吧,其实是两版合一。主要是改过是增加了通知,通知的目的是这样的:您花了十二块大洋买了这个app,别让它在角落里落灰了。

我们收到过很多反馈,说记录时间虽然不难,但坚持却不容易。我们的想法是初期先由软件在特定的时间时行提醒,辅助您养成习惯,习惯养成了,提醒的使命也就完成了。

notiinterface

好了,先看一眼,iPhone上的通知差不多是这样的,每到需要通知的时间,无论你在做什么,都会在屏幕上方看到这样的东西,点击它,就直接进入iTimeLog软件了。

noti

通知提醒的设置功能在设定界面中,点击“提醒”,会发现有两种可设置的提醒项,一种是退出app提醒(来自邹老师的建议),app退到后台后,时不时地提醒你要注意记录时间,可设定从15分钟到60分钟不等的时间。个人建议设定在25分钟以上,时间太短的话会有不断被打扰的感觉。设成25分钟的话,也可以当简易番茄钟用:)

还有一类,共三种,就是回顾反思提醒,定时提醒你要进行时间记录的检查,总结,反思。记录当然是为了反思的,不然记录就没什么意义了。

###新输入

本版我们提示另一种输入方法,估且叫作模版式输入,主要的想法就是在输入事件的同时能把类型给填了,而不需要在事件上点击编辑专门去下一个页面填写类型。

tempinput

模版式输入的格式是“事件:类型”,即你在主界面输入事件的地方,直接填入事件+冒号(全半角冒号都支持)+类型,app自动将输入的内容切开,前半部分作为事件名称,后半部分作为类型名称。

###化学反应

这种输入方式极大地简化了类型输入的操作,开发完成后,我们意外地发现它跟模版发生了化学反应,也就是说这使得模版这个东西,真正地好用起来。

模版是iTimeLog 1.3.5版推出的功能,分成事件模版和类型模版,初衷当然是为了更方便地输入,然而分开的模版有个问题,就是多次输入同一事件后,还需要一个个分别是修改它的类型,并不方便,所以我一般也只使用事件模版来处理没有类型的事件。

有了模版式输入之后,这个问题就解决了,以下是我的事件模版:

tempinputtype

主要是一些美剧,这类事件对我来说是不定时的,可能一周一次,可能一个月一次,基本不可能是主界面上找到重做按钮,是典型的应该使用模版的事件,而每次输入事件后再输入类型却也很麻烦。于是我把它处理地这样,使用事件模版,同时把事件和类型输入。

至此,模版输入这个功能真正地好用起来了。

###详情页

detailwithnote

本版在事件详情页也有一个小改进,我们在这个页面把事件笔记展示出来了。在iTimeLog中你可以给每一个事件加笔记,标识当时所思所想,状态,自我效率评价等一切可描述的东西,现在你可以对这一数据时行通览了。我们觉得数据要展现出来,才会有用。

我们好像从来没有正式地介绍过详情页,刚好在这里说一下吧,用过iTimeLog的人应该都知道,iTimeLog的统计分为列表和图表两种。在列表中,列出了某个时间段某个事件的花费时间总和,如果你点击这一记录,事件就会被展开,列出详细时间使用清单。在这个页面,我们还为记录控们准备了一个叫作“全部”的小按钮,于是你可以查看有记录以来,该事件的所有记录,以及时间的总和。

iTimeLog 1.4版正式上线。

修改了几个bug,从这版开始,你可能把自己的图表分享到国内外热门微博上了。

shareit

caak

Inbox,在GTD的定义里面是收集材料的工具。最好的Inbox工具是纸和笔。而Remember在Orgmode里面算是较好的Inbox工 具。它比每次打开org文件来写好非常非常多。它提供的是在emacs启动的情况下,快速的录入工具。如果你的emacs没启动,那用便箋或纸笔会好得 多。原因很简单,emacs什么都好,就是启动太龟了。

配置和基本使用

remember.el在emacs23以上版本是自带的,emacs22及以下版本如果发现没有自带,请自行放狗搜。

  (setq org-default-notes-file "~/.notes")
  

在.emacs中作如上设置,表示你希望将remember产生的note存放在~/.notes中,要我说这可一点也不重要,重要的是下面这一行:

(define-key global-map [f12] 'org-remember)  

快键键。当然,快捷键从来很重要。不过在remember模式中,它显得尤其重要。因为本身remember是随时需要的东西,用完后又应该随时忘 掉。所以调用remember应该越不影响当前的思路又好。一个要键入”M-x org-remember”这么多字符才能调出来的remember又有什么用?

我觉得remeber的用法应该是这样的:

现在我想起来晚上海贼王的汉化应该出新的了,接F12调出remember,输入OP,然后“C-c C-c”保存(C-c C-k是取消),remember buffer自动消失,整个emacs又恢复成写这篇blog的界面。

现在的问题是,我一天可能乱七八糟的出现不少想法,每次都按F12来记录是好的,晚上回家一看,~/.noet里面充满了记录,一条一条分门另类地 复制了不同的org文件中。我承认这是重要的工作,无可避免。可是有些想法我在记录的时候就知道它应该是todo还是普通的笔记,能不能让它们自动归位 呢?

于是我们应该开始介绍:

模版

模版的配置文件如下:

     (setq org-remember-templates
      '(("TODO" ?t "* TODO %?\n %x\n %a" "~/doc/org/home.org" "Tasks")
    ("IDEA" ?i "* IDEA %?\n %i\n %a" "~/doc/org/home.org" "Idea")
    ))  

它的参数是这样的,”TODO”是这个模版的名,”?t”是快捷键,”* TODO %?\n %x\n %a”是整个模版体,然后是该模版要保存的文件,保存后的项目在文件中处于哪个父节点下面(如果没有会自动新建)。

我们以第一个模版为例说一下使用中会发生什么?

当你按下F12(这是我的快捷键)时,会看到buffer被切分成两块,下面出现一个rememeber fuffer。以及一个输入提示(如下图的上半部分所示),按我们之前的设定,出现两个快捷提示。

temp

这时按下“t”,在remember buffer中,会自动接模版体的格式显示出补好的TODO,第一行是“* TODO”,第二行是%x,%x是你触发remember时kill ring(类似于剪贴板)中的内容。最后一行是%a,一个指向你触发remember的地方的link。

这时如果你按下”C-c C-c”保存,这一条TODO项目将会被送到”~/doc/org/home.org”文件中的”Tasks”条目下面。

标签(tags)在管理东西方面有很多应用。比如blog,flickr,前阵子还在小众软件上看到用标签管理文件的软件。

本身,我们在做org管理文件的时候就已经把不同的东西放在不同文件里了。比如我们建了home.org,work.org两个文件,把在家的工作做在home.org里,把公司的放在work.org里面。

但这种用文件来分类的方法有不便的地方:其一,如果我想到一个新的分类,那就必须新建一个文件;其二,如果我有一个工作同时属于两个文件,怎么办?

于是,tags来了。

tags只做一件事:标记这个项目是什么?它的展示样式是这样的

TODO 跟特留尼西特握手                    :苦差:薪水:逃不掉:

你可以按C-c C-c组合键,这里在mini buffer(就是下面的小框)会出现”Tags:”,等待你输入标签,支持中英文。

就是这么简单。

tags的继承

如前所述,本来我们的想法是用文件来进行不同的分类的,也就是说实际上文件就是一种分类,放在work.org中的项目本来就应该拥有work属性,我不想在每一个项目上添一个:work:的蛇足。

这就得说到tags继承的org特性了。

tagin

如图,叶项目“新门”本身有一个属性”苦差”,同时它继续了两个属性,一个来自它的父项目apartment,还有一个来自文件属件work。给一个文件设置属性,需要在文件头加上一行。

#+FILETAGS: :work:

更简单的方法

如果有一些常用的标签不想每次都敲。可以使用orgmode的标签快捷键功能.比如你可以用k来代表苦差,用s来代表薪水。跟很多org设置一样,可以在两个地方完成这些设置。

一个是.emacs文件。它的语法是这样的。

   (setq org-tag-alist '(("苦差" . ?k)
                            ("薪水" . ?s)))  

还有一种做法是在文件的头部加声明。类似这样:

#+TAGS: @office(o) @home(h) @traffic(t)
这里,括号里面的是快捷键

它们的分别在于,前者对于本机所有的org文件都有效。后者刚只对当前文件有效。
这时再给一个项目加标签就会变成这样

tag2

敲相应的快捷键就可以了。

搜索查看tags

使用tags来给项目打标签当然不是为了打打好看而已。我们是要用的。最常用的用法就是用tags来表示context的概念。

江湖传言把事情分类来做能提高工作效率。即是说,如果你有十个电话要打,十个email要回。最好不要打一个电话回一封email再打一个电话再回 一封email,比较好的做法是先打十个电话,然后再连回十个email。还有一个秘笈,是威尔史密斯在<当幸福来敲门>里面教给我们的,如果你不把话筒 放下来,能节约很多打电话的时间。

这就需要我们能够把十个电话项目都取出来,在文件里面一个一个找:phone:标签?别傻了。敲一个C-c a吧,然后再敲m,下方的mini buffer里出现了几个大字”MATCH:”,这里输入”phone”,回车。你的列表中所有文件里的带有phone标签或者属性的项目就都列出来了。 不想要所有项目,只想看TODO?简单,C-c a后不要加m,加个M吧。

输入关键词的时候还可以使用与或非运算,算符如下:phone&work,同时有两个标签的。phone|work,有两个标签之一的。phone-work有phone标签而没有work标签的。

这里,C-c a表示你要求调出agenda view,后面那个命令则指明你想要调出什么样的view。敲后C-c a之后,不要急着敲m,可以看看org都提供了哪些view,我们熟知的有C-c a a,C-c a t等。

不要每次都输关键字

这样看起来,C-a a a也是一种检索,只不过它们是org-mode内置而已,那我也有一些数据视图是经常要用的,有一些是没事就搜一下的。我也要敲三个键就弄出来,不想每次都敲tags。

嘿嘿,改源码把我自己的搜索置进去。倒是不用着急,读代码总是麻烦的。事实上org-mode已经开放了一个自定义view的接口。唤作org-agenda-custom-commands。可以在.emacs文件中设置自己的。

   (setq org-agenda-custom-commands
'(("k" "work haha"
((agenda "")
(tags-todo "work")
(tags-todo "支持")))))  

这段代码表示您定了一个可以用C-c a k 调出来的view,它的描述是”work haha”,view中包含三段数据。最上面是agenda,就是调C-c a a出来的界面,然后一个分隔行,列出tags为“work”的项目,再一个分隔行,列出tags为支持的项目。

官方的说法是提供了一个GUI界面,M-x customize-variable RET org-agenda-custom-commands可以打开。界面如下:

taggui

但我个人还是喜欢使用.emacs文件手写配置。不是我装13,而是GUI界面设计得实在太难用了,我到现在也没弄明白它的用法。

0%