尝试过很多种方法来记工作日志,有用word的,有用网上服务的,有用blog的,都不是太理想。这一切形式都过于复杂了!我所需要的只是自动插入时间、快速地打开日志文本、三言两语的讲一讲今天我干了什么。

今天看了http://www.ftrain.com/util_emacs_hints.html这个文章,觉得这个方法很不错,于是就如法炮制了一通。实现起来非常简单,分两步走就行了:

  1. 在.emacs里写一个自动插入时间戳的函数:

(defun insert-time ()
(interactive)
(insert (format-time-string “%Y-%m-%d-%R”)))

这样,当你使用M-x insert-time时,就自动会在当前的buffer里插入一个类似于“2001-03-19-02:10”的时间戳。

当然,你可以用其他的时间样式来代替”%Y-%m-%d-%R“,例如

(defun insert-ISO ()
(interactive)
(insert (format-time-string “%Y%m%d”)))

会插入一个ISO格式的YYYYMMDD的时间,类似于“20010319”.

当然,如果你喜欢,你可以写一个类似于

(defun insert-date-verbose ()
(interactive)
(insert (format-time-string “It is now second %S of minute %M of hour %H (%l %p) on day %d of %B in year %Y in time zone %Z. It is %A, and day %j, in week %U, of %Y. “)))

的东西,用M-x insert-date-verbose来插入:It is now second 41 of minute 44 of hour 02 ( 2 AM) on day 19 of March in year 2001 in time zone EST. It is Monday, and day 078, in week 11, of 2001.

嗯,又长又臭。

  1. 在.emacs中定义journal函数

(defun journal ()
(interactive)
(find-file “~/journal/journal.txt”)
(end-of-buffer)
(insert “\n\n”)
(insert “*”)
(insert-time)
(insert “\n\n”)
)

这样,当你输入命令M-x journal后,自动打开**~/journal/journal.txt**这个文件,并且跳到文件的最末尾,自动插入当前的时间戳,以便你输入日志。

如果你是在命令行下,直接用emacs -f journal这个命令,也可以在启动Emacs的同时,自动启动journal。使用时的效果如图所示:

当然,这只是初步的一个框架,还可以在里面继续添加一些类似于标签、TODO、分类、自动插入所在地和天气情况等功能。