行者无疆 始于足下 - 行走,思考,在路上

GTD: Getting Things Done

[zz]只管去做-用emacs的org-mode做时间管理

wheer

目录

1  序
2  收集、处理
3  规划、执行
4  回顾、简化
5  反省、激情
6  完结

1  序

用org-mode有一周了,期间翻了翻戴维·艾伦的《尽管去做-无压工作的艺术》(getting things done, GTD)一书,感觉这个理念很有意思,我喜欢。

GTD 没有和别的时间管理方法混为一谈,自然是有其特别的地方的。先想想像planner之类的时间管理工具,不外是先定大目标,小目标,然后细分为许多可操作性强的事,安排到每一天。如此由上而下的理念已被绝大部分人所接受,但饶是如此,大家仍然感觉每天是在疲于奔命,说不好哪天会冒出一堆意料之外的事,逼着你变身救火队员; 或者说突然接到老板一个不可抗拒的命令,使得你的所有计划泡汤。。

那究竟是什么地方出了问题呢,至少有几点:

  1. 自上而下列举事项的方式可能让你照顾不到一些细微不入流的事项,而这些事在任何一天都有可能爆发
  2. 你列出的事有些不是必须当天做的,强制列上会牵制你的精力
  3. 一般的时间管理只列出了你很少一部分而不是全部要操心的事,仍然有大量琐事在你心中萦绕,影响工作效率
  4. 任何临时突发事件均使得你先前的安排作费

而GTD的出现正是针对以上几点的。在正式进入正题之间,我们应该先确立一些理念,因为要做好任何事都是需要信仰的(正如开源、Emacs、LATEX,没有信仰是坚持不下来的:),具体如下

  1. 心中装的事情越少,工作效率越高
  2. 事情极少由于时间匮乏而受阻(尽管每个人都这么认为),它们陷入困境往往是由于一开始不知道如何采取行动而造成的
  3. 自下而上地将所有可能萦绕在你心中的事列出来,用一个可靠的外部体系来替你管理它们
  4. 收集自己所有的想法,只鼓励不打击,追求数量不求质量
  5. 经常回顾、整理那个外部体系,分析每件事并确定下一步行动

2  收集、处理

根据只管去做(GTD)的理念,你需要一个可靠的外部系统来接管所有可能扰乱你心绪的事情,而你的心中应该是无所牵挂,可以"只管去做"的。

在这里,org-mode自然就是那个可靠的外部系统了,这在emacs23下是自带的,稍稍在.emacs下加点配置

(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-hide-leading-stars t)
(setq org-log-done t)

下面就正式开始吧,先建个文件夹,如 /.org/,在里面新建org文件,比如与工作无关的个人事务都放在self.org里,它的大概样子如下(第一行以后再解释):

+TAGS: EASY(e) COMM(c) OFFICE(o) READ(r) URGENT(u) FUTURE(f) WAIT(w) MEMO(m)
* 阅读、充电
** 计算机
* 强身健体
** 力量、健美
** 有氧运动
* 人际关系
* Basket
** 临时篮子

然后就开始静下心来,耐心地,自下而上地将你所有萦绕于心中的所有事情转移到这个系统中去。记住是所有,不要留任何隐患,所有具体不具体的,成熟不成熟的都要写下来,总之就是不要让它再幽魂不散地骚扰你的心境了。

比如说,你今天发现图书馆新开的自习室里有很多你感兴趣的新书,总时不时地觉得该提高一下表达能力、写作能力、演讲能力,还有一堆书想看,希望能培养良好的阅读习惯,还想学用blender作三维建模,想起北京秋天不长了,该出去享受一下阳光顺便活动一下生锈的筋骨了,想起本科同学好久不联系了。。。都写下来吧,不管是些具体的事、模糊的意向还是些不成熟的想法,先记下来再说。初次做这个大概需要一两个小时,写下上百条都不要奇怪,往后就要靠平常注意积累了。

以下仍然只是个示例:

#+TAGS: EASY(e) COMM(c) OFFICE(o) READING(r) URGENT(u) FUTURE(f) WAIT(w) MEMO(m)
* 阅读、充电
** 养成阅读习惯
*** 没有条件创造条件也要上,晚上远离电脑两个小时,去图书馆 :EASY:
*** TODO 下载感兴趣的jar电子书传到手机上,利用一切间隙看
** 计算机
*** 阅读<Mastering Algorithms with perl>         :FUTURE:
*** 学习blender三维建模                         :FUTURE:
** 英语
*** 千万别学英语                                 :EASY:
  - [ ] 每天反复听同一盒磁带
  - [ ] 反复听一个月后听写、跟读
* 强身健体
** 力量、健美
*** TODO 去趟天成买对哑铃                         :EASY:
** 有氧运动
*** 去八达岭残长城转转
*** 参加一次1.3+级的穿越
*** 骑车绕北京城半圈
* 人际关系
*** 好久没见老同学了
* Basket
** 临时篮子
*** 文献中心二楼的研究生自习室很好,很强大         :MEMO:
*** 提高一下表达、写作能力                         :URGENT:
*** 提高演讲能力                                 :FUTURE:
*** 阅读<哲学的故事>                             :READING:

所有事项都以*开头,*数目代表了级数,org-mode其实就是一种outline mode,带*的是outline项。org-mode支持对outline项作以下操作(鼠标在outline项上):

  1. TAB折叠、打开子项,Shift-TAB折叠、打开整个文档
  2. C-c C-c指定当前项标签,如上面的:URGENT:, :MEMO:等,方便以后分类查找
  3. M-左右方向键减/增*数目
  4. M-上下方向键移动当前项位置
  5. C-c C-t设定当前项状态为TODO DONE或空白
  6. C-c C-s规划时间(只建议用于约会或非此时不可的情形)
  7. C-c C-d设定最后期限(deadline)

好了,现在假设你现在已经有了一个长达几百行的列表,千万别让它就这么堆着,那样你就前功尽弃了,好不容易从脑中清除出来的东西可能过不多久又重新萦绕在你脑中。你现在要做的便是清理你放在这个你所依赖的系统里的所有信息,具体过程如下:

  1. 逐一处理,马上作出决定,不要积压
  2. 如果认定是垃圾,删除
  3. 如果可委派别人,委派出去,将该项标签设为:WAIT:,这个标签下的事情都不用你干(爽吧)
  4. 2分钟可完成的立刻干掉
  5. 应该尽快采取行动但超过2分钟的,C-c C-t设为TODO
  6. 这是一件不具体的事务(如养成阅读习惯),那么确定如何实施下一步(创造条件,下载jar书)
  7. 也许在将来再做的事设标签为:FUTURE:
  8. 不要剩余有未处理的事项,以后注意随时添加,及时检查处理(比如前面的例子就还有四、五项未处理,不应该)

3  规划、执行

一个大学讲师在上课的时候带了一袋沙子、一袋小鹅卵石、几块大石头和一个木桶,问有没有人能把这几种不同形状的东西都装进木桶。一个热心的学生自告奋勇走上讲台随手抓起沙袋就往木桶里倒,然后把小鹅卵石也放了进去,但是轮到大石头的时候,他发现木桶里的空间已经不够了。讲师遗憾地摇了摇头。他把木桶清空了,先把那几块大石头放进木桶,再把小鹅卵石放进去,然后倒入沙子。最后他摇了摇木桶,只见这三种不同形状的东西配合得天衣无缝,把木桶挤得满满的。

我们做规划的第一个原则是优先放置大石头,每周前把一周要做的重要事情在org-mode中将其优先级设为最高(shift+上下键设定每项的优化级),但设定的事情尽量要少,因为这些事情是必须完成而且应尽早完成的。至于要不要一开始就设定日期,就看个人喜好了,有人在时限压力下工作更好,有人则会产生焦虑,但一般GTD不建议一开始将日期都定好(当然一些本身具有时限性的事情除外)。

然后是每天的规划了,同样是应当确定大石头,一般是两到三件最重要的事,在org-mode中C-c C-s将其规划到当天,并且优先级设为最高(shift+上下键设定每项的优化级),事情应该描述得尽量具体,且保证当天能完成(完不成就细化)。然后就是尽早搞定你大石头了,一定不要找延误的理由,做完后表扬一下自己。至于其它事务,你一高兴当然会多少顺便做一些的,不是么?等一段时间后回头你就会发现不少事在不知不觉中就完成了,特别是重要的事都没延误。

如果你有定力地全神贯注投入工作几个小时,一定会比不断分心的工作一天取得更多的成果。一般进入专注状态需要15分钟时间,所以能保持专注状态的外界环境和心理环境十分重要。进入专注状态前花几分钟清空头脑中萦绕的琐事(写到org中),总比你进入专注状态后再被干扰要好。

至于执行,不用说,当然越专注越好,一次只做一件事,而做事时头脑中的琐事已经被事先清理出去了。另外,尽可能改善你的工作环境。

做完一件事后,C-c C-t改成DONE,然后表扬一下自己,再扫描一下清单,找出下一步要做的,记得应该是真正可执行的下一步。所有事情被延误就是因为没想好具体的下一步做什么,而不是因为时间不够,所以要对任何看着不具体的事情花一分钟想想下一步做什么,这一分钟绝对花得值   

至于扫描清单,因为列表太长了,自然org-mode会贴心地提供一系列帮助你查找的方法:

  1. C-c /: 在当前org中按关键词查看,比如你可查找某个tag如office:C-c / <ret> office <ret>
  2. C-c a a: 日程表,在日程表状态下,d或w为按日或周查看,.为跳到当日,左右键为前后一天(周)
  3. C-c a t: 列出所有TODO,每项上按中键可跳到对应的org,至于其中的操作也很方便,自己看菜单了解一下吧
  4. C-c a m: 根据tag来查找,这就是一开始每件事都要用标签定性的原因,这时候查就方便了,比如你要办公室就查office,要外出就看看trip中有什么可顺便完成的事,觉得头脑发胀要换思路就查查有什么easy的事,如果想气使颐指一下就看看wait中别人有什么事没给你做完,正豪情万丈中就看看future中有什么伟大的规划....
  5. c-a a M: 根据tag来查找,但只针对TODO项
  6. 另外C-a a C可以自定义一些查找方式,自己试试吧

4  回顾、简化

这里的回顾不是指周末或每天晚上的反省,而是对目标和org-mode中所记录的所有事情的回顾。

每周回顾的重要意义在此: 它给了你一次机会, 来重新整理所有的事情并检视什么是最重要的任务。 以下是GTD每周回顾的一些步骤:

  1. 回顾你的长期目标,中期目标和短期目标
  2. 将没归类的(一般集中放在最后,或者平时用纸记着)、还没确定下一步是什么的事情逐一处理、具体化,加上标签(C-c C-c),归入相应情境
  3. C-c a a 看看日程表,看看有什么约会或有deadline的事
  4. 按每种情境(C-c a m)查看任务清单,心里有数
  5. 设定大石头,但不着急放到每一天

至于每一天开始时的回顾,最重要的就是先设定三件最重要的事了,三件就行了,而且描述得尽量具体可行,尽量在早晨就完成,这样在反省时不至于觉得当天没做什么。还有就是三块大石头中应当有一件与你的中长期目标或人生规划相关,这样能增进成就感。

再有就是简化,因为GTD始终原则就是保证你能专注地只管去做一件事。它建立一个系统帮助你把头绪里的琐事清理出来就是为了你专注,它不提前把乱七八糟的事安排满你的日程也是为了你专注,它每天只在日程中定三件事同样是为了你专注。那么你的org-mode中列表那么长是不是有点影响你的专注了哈,那就简化它吧。

  1. 清除。有时候我们认真权衡一下会发现很多事是没必要做或可以拖延的,还有很多事2分钟就搞定了,这些都清除或搞定之
  2. 对你的目标足够明确,然后结合你的目标来筛选,同样还有可清除的
  3. 减少你的承诺
  4. 把能堆一起的波速堆一起,合适时突击全部完成
  5. 永远只在当日日程中只安排三件事,最重要的三件,而且有一件与你的中长期规划有关
  6. 将一些琐碎的东西分离出去,比如我的日程表(C-c a)只搜索两个org文件:work.org, self.org,但我可以还有其它一堆org文件,比如是某门学科或某本书的研习计划(顺便说一下用org做学习笔记不错,比如可先列出书中章节,每章节下面用 - [ ] Question 的形式列出所有要了解的问题,了解每一项后更新问题答案并C-c C-c之使其变成 - [X] Answer 的形式)
    对于分离出去的org文件,可以用[[file:name.org][description]]的形式来相互链接。事实上, org提供的链接功能很强,甚至可用shell命令。

5  反省、激情

用GTD或者org-mode做时间管理的根本目的就是要掌控自己的生活,既不要被一些毫无意义的事情耽延,也不要陷入看起来没完没了的工作中被消磨掉所有锐气。

要想保持锐气和激情,那么我们就需要反省和自我激励,良性的心理暗示起到的作用绝对是你预想不到的。

为了充分反省,不妨新建个review.org,没必要加入日程表中,内容示例如下,当然究竟写成什么样必须根据你个人情况来,自己构想来的系统用起来才真正有效:

* REVIEW
** 每日反思
 - [ ] 今天我有什么样的付出?我是用什么的方式付出?
 - [ ] 今天三块大石头是什么?哪项与我的人生规划有关?都放下了吗?没有的话,下一步是什么?
    - [ ] 1.
    - [ ] 2.
    - [ ] 3.
 - [ ] 今天我学到了什么?
 - [ ] 今天我给自己的人生提高了什么品质?对于未来,我在今天作了什么样的投资?
** 周末反思
 - [ ] 这周的规划都完成?效果如何?
 - [ ] 这周的工作有没有陷入手忙脚乱中?哪些需要调整?
 - [ ] 这周的工作状态是不是专注?是什么事情让我分神或担忧?怎么消除?
 - [ ] 这周有什么事情坚持每天做了(如背英语文章、看书、培养某项习惯等)?如果没有,为什么不坚持?
** 感觉无趣时反思一下
 - [ ] 此刻人生中有什么让我觉得快乐?让我快乐到什么程度?带给我什么样的感受?
 - [ ] 此刻人生中有什么让我觉得振奋?让我振奋到什么程度?带给我什么样的感受?
 - [ ] 此刻人生中有什么让我觉得感激?让我感激到什么程度?带给我什么样的感受?
 - [ ] 此刻人生中有什么让我觉得欣赏?让我欣赏到什么程度?带给我什么样的感受?
 - [ ] 此刻人生中有什么值得我努力的?让我努力到什么程度?带给我什么样的感受?
 - [ ] 我喜欢什么样的人?什么的人喜欢我?让我喜欢到什么程度?带给我什么样的感受?

最后很重要的一点就是做你想做的事。试想你每天在做的每一件事都是你所喜欢做的,那么你肯定会愿意付出更多努力来做你想做的事的,也就是说,耽延自然就会少了,事情也就几乎不可能被堆积下来(前面不止一次说过,事情没完成永远不会是因为时间不够,要么是你不知道下一步怎么走,要么就是你根本没走)

你也许会笑:"做我想做的事,说得轻巧,由得了我吗?"那么我问你,你知道你究竟想做什么吗?如果你知道了,你知道下步是什么吗?你所说的下一步已经具体到马上可以执行了吗?如果以上你的回答都是,那么为什么不去做呢?

比如说你现在的工作烦透了,是该反省做改变的时候了,那就在review.org后面加上:

** 我要找份喜欢的工作
*** 调查
  - [ ] 有谁在从事你心仪的工作?
  - [ ] 他们是如何得到这份工作的?
  - [ ] 获取这份工作有什么要求与标准?或者说绊脚石是什么?
      - [ ] 一份更高的学位?
      - [ ] 一份不错的工作经验?
      - [ ] 或者其他的技能?
*** 设定计划:想出一些有用的方法去解决你的绊脚石
  - [ ] 进修、培训
  - [ ] 求教,有意积累相关经验
  - [ ] 自学
*** 开始行动, 不要等待
  - [ ] 每天反省:我有没除掉了哪颗绊脚石或向目标迈进了一步?下一步是什么?
  - [ ] 每周反省:我有没有坚持不懈?下面该怎么走?

6  完结

GTD(只管去做)是我在搜索org-mode时无意中看到的,其实也是粗粗看了一下,可能远未得精髓,但还是挺喜欢这套理论的,包括org-mode也挺合我品味,不仅用来做日常计划,还读书笔记、学习计划和学习笔记都用它了。

至于我写的这份笔记,其实每篇写得都很仓促的,很大程度是为了完成任务而写的,哪位觉得写得太烂的请见谅。也许后续我会根据理解的加深重写一下。

关于GTD,原书和更多的资料可以从褪墨中找到,如果你对这个感兴趣,还是建议你去通读原著。至于org-mode,我觉得还是很强大的,自己用M-x org-info可看帮助,各位尽可以发挥自己的创造力和想象力来灵活运用。

当然你还可以将GTD结合其它理论来完善自己的系统,比如结合富兰克林自我修炼表格,将其第一列改成你每日反省或每周反省的项目。至于要反省的内容,就看你自己了,比如你要改变你自私残忍的性格(开玩笑了),或者你要改变作息,那都可以写上。另外也可像富兰克林一样,每段时间应特别重点关注其中一项,等等。

最后说一下org-mode是可以导出为html或text的(还有xoxo格式其实也是html,自己试试看吧)。但默认的html样式实在不怎样,好在可自定义,先在.emacs上加:

(defcustom org-export-html-style
"<link rel=\"stylesheet\" type=\"text/css\" href=\"wheer.css\">" ""
  :group 'org-export-html
  :type 'string)

然后输出的html就可以用自定义的css了,以下只是个示例:

html {font-family: Times, serif;font-size: 12pt;}
.title,.author { display:none; }
.todo { color: red; }
.done { color: green; }
.timestamp { color: grey }
.timestamp-kwd { color: CadetBlue }
.tag { background-color:lightblue; font-weight:normal }
.target { background-color: lavender; }
pre {border: 1pt solid #AEBDCC;background-color: #F3F5F7;
    padding: 5pt;font-family: courier, monospace;}
table { border-collapse: collapse; }
td, th {vertical-align: top;border: 1pt solid #ADB9CC;}
h2{ margin: 5px 0 10px 0;background-color: #AEC5CE; font-size:1.5em;}
h3{ margin: 0px 0px 5px 0;padding: 5px 5px 5px 10px;
    font-size:1.2em; border-top: solid 1px #9AB7C2;
    border-bottom: solid 1px #9AB7C2; font-variant: small-caps; }
h4{ color: black; margin: 3px 0px 5px 0px;
  padding: 3px 5px 3px 15px; font-size: 1em;}
h5{ color: black; margin: 3px 0px 3px 0px;
  padding: 3px 5px 3px 25px; font-size: 1em;}
p{ margin:0px 10px 0px 18px; }

 


File translated from TEX by TTH, version 3.80.
On 9 Aug 2009, 11:35.

Emacs org-mode 090809

 

1 TODO 旅行者手册撰写

DEADLINE: 2009-08-31 Mon

1.1 目录结构

1.1.1 序(我为什么写这个手册)

DEADLINE: 2009-08-15 Sat

1.1.2 旅行者说(主要记载旅行者的历史)

DEADLINE: 2009-08-15 Sat

  • 《远方眼中:旅行者传》

1.1.3 单车天涯(主要列举一些骑行游记)

DEADLINE: 2009-08-18 Tue

  • 《弦歌初弓滇藏之行》

1.1.4 骑行手记(主要记载一些骑行技术)

DEADLINE: 2009-08-22 Sat

  • 爬坡要点
  • 下坡要点
  • 如何应对雨天

1.1.5 勇者竟攀(攀岩相关)

DEADLINE: 2009-08-23 Sun

1.1.6 驴行天下(主要记载一些徒步相关的东西)

  • 《穿越天山,狼塔之旅》

1.1.7 行吟游唱(收集个人心得感悟)

1.1.8 技术装备(普及入门装备知识)

DEADLINE: 2009-08-20 Thu

  • 单车装备大全
  • shimano套件入门
  • sram品牌介绍

1.1.9 布袋事件(回顾整个事件,强调安全出行)

DEADLINE: 2009-08-26 Wed

  • 事件过程(时间表)
  • 社会帮助
  • 事件启示
  • 相关资源

1.1.10 医疗知识(普及户外相关的医疗知识)

  • 膝盖保养与锻炼

1.1.11 户外资源(网络、杭州户外店、书籍等)

  • 单车网络资源
  • 杭州户外店简介
  • 户外书籍
  • 视频

1.1.12 会长感悟(个人心得)

  • 冻冻
  • 巫婆
  • cnlox

1.1.13 附录

 

2 TODO LPI认证

2.1 TODO 初步资料查阅,明确考试要求、时间和范围

DEADLINE: 2009-08-10 Mon

 

3 TODO Books

3.1 TODO 《C++ Gui Programming with Qt4》

DEADLINE: 2009-08-31 Mon

3.2 TODO 《C++ Primer 3rd Edition》深入阅读,争取全部概览一遍并做完习题

DEADLINE: 2009-09-30 Wed

3.3 TODO 《计算机算法设计与分析》概览

DEADLINE: 2009-09-30 Wed

 

4 Programming

4.1 TODO 浙江大学校车查询系统

SCHEDULED: 2009-08-20 Thu

4.1.1 优化数据库,重新设计数据库结构

4.1.2 学习xml,寻求xml数据转换之道

SCHEDULED: 2009-09-01 Tue

4.1.3 开始尝试系统的Qt版本

SCHEDULED: 2009-09-01 Tue

 

5 English

5.1 TODO 上海口译考试基本资料查阅

SCHEDULED: 2009-09-02 Wed

Author: Lox Freeman 

Date: 2009-08-09 09:27:36 CST

HTML generated by org-mode 6.14 in emacs 23

 

计算机是懒人的科学

Contents

折腾计算机两年多了,现在才算懂了点门道。从最开始的开机关机,到最初战战兢兢通宵装 xp系统,到Vmware带来的神奇,到luckweb(缘网)的丰富,到Fedora 8的一丝不惑,再到 Ubuntu的博爱,我终于走进了GNU的大门。自由与开放的广阔世界,GNU,GNU is Not Unix, 我越发感到,这,就是我需要的世界。

本文会教你:

  • 如何配置一个Ubuntu下完整,轻巧,高效的c(c++, Java)开发环境
  • 如何维护和保持代码和文档的一致性
  • 如何配置一个舒服的LaTex+CJK的文档办公环境
  • 如何高效的使用Ubuntu系统
  • 经典学习资源推荐

本文不会教你:

  • 什么叫GNU, Ubuntu, Emacs……
  • 基本的Bash命令
  • 基本的Emacs,Vim操作

计算机是懒人的科学

计算机是懒人的科学。这点从计算机的发明就可以看的出来。众所周知,ENIAC的诞生是为 了计算,是为了弥补人脑的不足,减轻计算负担。

为了批量的计算,人们发明了机器语言;

为了简化机器语言,人们又发明了汇编语言;

为了进一步简化,人们发明了c,写了Unix;

为了更好的软件重构和代码重用,人们又发明了c++;

人们发现c++简直太tmd的复杂了,于是就发明了Java。

为了更好的维护程序文档,人们发明了docbook。

为了更好的排版质量,Knuth大人冲冠一怒,整整十年,发明了伟大的Tex排版系统。

后来Leslie Lamport说:Knuth你那个Tex系统简直太tmd的难用了,于是他就写了个 LaTex,极大地简化了Tex的使用,使得一个初学者在半天的时间内也能排出具有国际水准的 文档来。

后来中国人发现这LaTex先天不支持中文,于是就有人站出来发明了CCT,德国人还发明了 CJK(Chinese, Japanese, Korean)。

后来人们又发现CJK生成字体太tmd的麻烦了,于是有勇士站出来,写了xetex,直接调用系 统字体,这下好了。世界清静了1

为了更高效的编辑文本,人们就发明了vim和Emacs。

后来人们又给Emacs增添了很多乱七八糟的功能,于是Emacs成了一中生活。

人们发现文件管理真是件无聊的事情,于是就发明了sh脚本语言。

人们发现程序的Api文档撰写麻烦死了,于是Java有了Javadoc,C++有了Doxygen2

再后来的后来,cnlox发现Emacs muse这个记笔记的好东西,于是就用muse写了这么一篇东 西,记录下来最近的一些心得和学习笔记。^_^

几个小软件

yakuake

用*nix的人进入系统第一件事往往就是开一个terminal,然后在那里打开Emacs,开firefox 等等。yakuake的使用十分方便,初次安装完毕后,默认用F12键调出,像一幕卷帘挂在屏幕 上,不用的时候,F12调走,自动隐藏,既不占用任务栏,又免除了Alt+Tab切换的麻烦。

sudo apt-get install yakuake

gnome-do

Mac下有QuickSilver,Windows下有Launchy,三个程序的设计思想是差不多的,就是程序的 快速启动器,免除从菜单中搜索的麻烦。谁用谁知道。

sudo apt-get install gnome-do

dwww

我想信大多数玩linuxer都是爱折腾不安分的人。Ubuntu虽然打着博爱的口号,其易用性堪 比Windows,依然难免会遇到各种各样的问题,此时程序本身的文档就成了最好的解决问题 的良师益友。

sudo apt-get install dwww info2www swish++

安装完后打开浏览器访问http://localhost/dwww 或者直接在终端调用即可3

顺便提一下,dhelp和devhelp也是类似的软件,大家可以装着用用。

nautilus-open-terminal

在nautilus中管理文件时,常常会希望在当前位置开个终端,以前的方法是:开终端-cd到 当前目录,不过有了nautilus-open-terminal后,打开终端后pwd就是当前目录,非常方便。

sudo apt-get install nautilus-open-terminal

Emacs

这个话题太沉重,我现在还不动elisp,无法进行太过详细的描述,先列下一个单子,容以 后慢慢到来:

  • gnus
  • ecb
  • emms
  • ibuffer
  • imaxima
  • gnuplot
  • cc-mode
  • jde
  • cscope
  • muse
  • dired
  • auctex
  • outline-mode
  • eshell
  • version control
  • planner
  • Emacs Make A Computer Slow……

Firefox

Emacs和Firefox是我在Ubuntu平台下应用最多的两个软件。具体我就不介绍了,都是可扩展 性极强的软件。推荐几个扩展吧:

LaTex

LaTex的中文化配置一直是件很麻烦的事情。尤其是在Linux下。在Windows下有CTex网站制 作的CTex套装,直接安装一般没有太大的问题。但是在Ubuntu下,LaTex装完后一般并不能 直接用于中文,需要生成一堆的字体和配置一堆的参数,Baidu上随便一搜一大堆,下面是 我的配置方法:

首先安装texlive套装,硬盘充裕的话安装全套支持好了,

sudo apt-get install texlive-full latex-beamer

然后安装cjk支持,

sudo apt-get install latex-cjk-all

其实现在已经可以使用中文了。


\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{gbsn}
欢迎来到CJK!这里使用的是CJK宏包里有的文鼎宋体。
\end{CJK}
\end{document}

但是gbsn字体过于简陋,比如说朱熔基的'熔'字就显示不出来,这怎么能行呢? 而且现在有很多latex文档都是用LaTex+CJK生成的,以后万一遇上这种情况,会很麻烦。 网上的方法多是自己编译字体配置参数,我看的头都大了。不过好在最后找到一种方法—— 网上搜索生成好的YueWang-zhfonts-final_1.01.tar.bz2,复制到主目录

sudo texhash

然后就看人品了。我那天下载字体包就下载了一个下午,都是下载到一半就停住了,不知道 怎么回事。

下面是我写LaTex文档的一个简单模板,供大家参考。


\documentclass[a4paper, 11pt, openany]{article}
\usepackage[top=2.5cm, bottom=3cm, left=2cm, right=2cm]{geometry}
                                     % 控制页边距
\usepackage{enumerate}               % 控制项目列表
\usepackage{multicol}                % 多栏显示

\usepackage{graphicx}

\usepackage{indentfirst}
\usepackage[perpage,symbol]{footmisc}% 脚注控制
\usepackage[sf]{titlesec}            % 控制标题
\usepackage{titletoc}                % 控制目录
\usepackage{fancyhdr}                % 页眉页脚
\usepackage{type1cm}                 % 控制字体大小
\usepackage{indentfirst}             % 首行缩进
\usepackage{makeidx}                 % 建立索引
\usepackage{textcomp}                % 千分号等特殊符号
\usepackage{layouts}                 % 打印当前页面格式
\usepackage{bbding}                  % 一些特殊符号
\usepackage{cite}                    % 支持引用
\usepackage{color,xcolor}            % 支持彩色文本、底色、文本框等
\usepackage{listings}                % 粘贴源代码
\lstloadlanguages{}                  % 所要粘贴代码的编程语言

%%%%设置listings宏包的一些全局样式%%%%
%%%%参见http://hi.baidu.com/shawpinlee/blog/item/9ec431cbae28e41cbe09e6e4.html%%%%
\lstset{numbers=left,
numberstyle=\tiny,
keywordstyle=\color{blue!70}, commentstyle=\color{red!50!green!50!blue!50},
frame=shadowbox,
rulesepcolor=\color{red!20!green!20!blue!20},
escapechar=`,
xleftmargin=2em,xrightmargin=2em, aboveskip=1em,
breaklines,                          %这条命令可以让LaTeX自动将长的代码行换行排版
extendedchars=false                  %这一条命令可以解决代码跨页时,章节标题,页眉等汉字不显示的问题
}

\usepackage{latexsym}
\usepackage{amsmath}                 % AMS LaTeX宏包
\usepackage{amssymb}                 % 用来排版漂亮的数学公式
\usepackage{amsbsy}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{mathrsfs}                % 英文花体字体
\usepackage{bm}                      % 数学公式中的黑斜体
\usepackage{relsize}                 % 调整公式字体大小:\mathsmaller, \mathlarger
\usepackage{caption2}                % 浮动图形和表格标题样式

\usepackage{CJKutf8}
\makeindex                           % 生成索引
\pagestyle{fancy}                    % 页眉页脚风格
%\fancyhf{}                           % 清空当前页眉页脚的默认设置


\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{song}
\CJKindent
\sloppy\CJKspace                     % 中英文混排的断行
\CJKtilde                            % 重新定义~,用~隔开中英文

%%%%%%%%%% 一些新定义 %%%%%%%%%%
\newcommand{\song}{\CJKfamily{song}} % 宋体
\newcommand{\hei}{\CJKfamily{hei}}   % 黑体
\newcommand{\fs}{\CJKfamily{fs}}     % 仿宋
\newcommand{\kai}{\CJKfamily{kai}}   % 楷体

%%%%%%%%%% 定理类环境的定义 %%%%%%%%%%
%% 必须在导入中文环境之后
\newtheorem{example}{例}             % 整体编号
\newtheorem{algorithm}{算法}
\newtheorem{theorem}{定理}[section% 按 section 编号
\newtheorem{definition}{定义}
\newtheorem{axiom}{公理}
\newtheorem{property}{性质}
\newtheorem{proposition}{命题}
\newtheorem{lemma}{引理}
\newtheorem{corollary}{推论}
\newtheorem{remark}{注解}
\newtheorem{condition}{条件}
\newtheorem{conclusion}{结论}
\newtheorem{assumption}{假设}

%%%%%%%%%% 一些重定义 %%%%%%%%%%
%% 必须在导入中文环境之后
\renewcommand{\contentsname}{目录}     % 将Contents改为目录
\renewcommand{\abstractname}{摘\ \ 要} % 将Abstract改为摘要
\renewcommand{\refname}{参考文献}       % 将References改为参考文献
\renewcommand{\indexname}{索引}
\renewcommand{\figurename}{图}
\renewcommand{\tablename}{表}
\renewcommand{\appendixname}{附录}
\renewcommand{\proofname}{\hei 证明}
\renewcommand{\algorithm}{\hei 算法}

%%%%%%%%%% 重定义字号命令 %%%%%%%%%%
\newcommand{\yihao}{\fontsize{26pt}{36pt}\selectfont}       % 一号, 1.4倍行距
\newcommand{\erhao}{\fontsize{22pt}{28pt}\selectfont}       % 二号, 1.25倍行距
\newcommand{\xiaoer}{\fontsize{18pt}{18pt}\selectfont}      % 小二, 单倍行距
\newcommand{\sanhao}{\fontsize{16pt}{24pt}\selectfont}      % 三号, 1.5倍行距
\newcommand{\xiaosan}{\fontsize{15pt}{22pt}\selectfont}     % 小三, 1.5倍行距
\newcommand{\sihao}{\fontsize{14pt}{21pt}\selectfont}       % 四号, 1.5倍行距
\newcommand{\bansi}{\fontsize{13pt}{19.5pt}\selectfont}     % 半四, 1.5倍行距
\newcommand{\xiaosi}{\fontsize{12pt}{18pt}\selectfont}      % 小四, 1.5倍行距
\newcommand{\dawu}{\fontsize{11pt}{11pt}\selectfont}        % 大五, 单倍行距
\newcommand{\wuhao}{\fontsize{10.5pt}{10.5pt}\selectfont}   % 五号, 单倍行距

%%%%%%%%%% 论文标题、作者等 %%%%%%%%%%
\title{\LaTeX测试文档}
\author{Lox Freeman}
\date{2009年5月31日}
\maketitle
\tableofcontents

这是\LaTeX中文文档。
\newpage
\end{CJK*}
\end{document}

让开发自动化

git

git是一种分布式版本控制工具,是Linus为了管理Linux内核源代码而发明的版本控制工具。 什么是git?为什么用git?这个问题我解释不清楚。网上已经有了答案,请看这里

doxygen

Java有Javadoc作为API文档声称工具,C++呢?没错,就是大名鼎鼎的doxygen。

sudo apt-get install doxygen, doxygen-gui, doxymacs, doxygen-doc;

doxygen使用非常简单,首先进入源代码目录,运行doxywizard生成一个Doxyfile4,根据 个人需要钩选相应的选项,然后运行doxygen即可。具体的代码例子可以看doxygen自带的文 档5这里有个中文的入门介绍。简单的说,doxygen能够:

  • 保持代码和Api文档的一致性。
  • 支持多种格式(latex, html, pdf, docbook, chm6)等格式文档的输出。
  • 支持多种语言。
  • 支持风格多样的注解方式(Javadoc风格,QTdoc风格)。
  • 支持多种编程语言(c, c++, Java, Python等等)。
  • 支持函数调用图和类继承图等图形的生成。

有了这个,以后写大程序的API文档就简单多了。^_^。

原来生活可以更美好

sudo apt-get install sl tree fortunes

Enjoy them.

学习资源

LaTex

  • LaTex编辑部 非常好的在线学习资源。
  • lshort 非常好的LaTex入门教材,看完了基本可以应付绝大部分的问题。
  • LaTex学习 非常好的LaTex学习博客。
  • lnotes 中国人写的LaTex笔记,行文非常风趣,针对中文做了进一步讲解,推荐。
  • http://cohomo.blogbus.com/ 非常好的一个博客。

Emacs

Linux

Footnotes

1. 个人觉得xetex目前还不太成熟,网上很多东西还是基于LaTex+CJK的。

2. 当然doxygen可以用于多种语言。

3. dwww貌似不支持Arch,其余的我没有做过测试。欢迎指教。

4. doxygen -g也可以生成Doxyfile,但是不如doxywizard直观方便。

5. 运行dwww,搜索doxygen即可。

6. chm是微软专有文档格式,Linux下只能查看,无法制作生成。

 

 




Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee