Posted on 27-09-2008
Filed Under (技术) by waterlin

Emacs的Worklog Mode提供了一个追踪你平时工作流的功能。

要安装Worklog Mode很容易,只要把worklog.el扔到你的load-path里,然后在.emacs里加上这段代码:

(require ‘worklog)
(setq worklog-automatic-login t)
(add-hook ’emacs-startup-hook
(function (lambda ()
(worklog-do-task “Hacking emacs” t)
)))

(add-hook ‘kill-emacs-hook
(function (lambda ()
(worklog-do-task “logout” t)
(worklog-finish)
)))

不管你在什么时候,用命令M-x worklog会自动打开预设好的文件来记录你的日志。每次都会新开一个entry,并且在entry的开头提供一个格式如2003-07-22 17:20的时间戳。命令M-x worklog-show也会打开该文件,但却不会自动添加entry。

要修改默认的文件,请在worklog.el里把

(defcustom worklog-file “~/.worklog”

这句中的~/.worklog改为你所想要的文件路径。

你也可以用worklog来简单的统计一下你的工作情况。当然,你需要用login和logout来标记task的开始和结束,然后再用M-x worklog-summarize-tasks来生成报表。

worklog-automatic-login设为非空值时,在emacs启动的时候,会自动添加login标记。worklog-do-task会为每一个运行的任务加一个停止的步骤,即类似于logout标记。当然,你可以自己修改login、logout这些标记文字的值。

Worklog Mode和我前面介绍的M-x journal两者的功能有比较大的区别,Worklog Mode更适合于边工作边记录,即在你工作的时候,每当结束一个工作或是开始一个新的工作的时候,就新建一个entry来记录;而M-x journal更适合于写一段时间的总结,比如说每天的总结汇报呀、日记呀等等比较大块的东西。

更详细的用法、说明请参考worklog.el本身。

(0) Comments    Read More   
Posted on 26-09-2008
Filed Under (技术) by waterlin

宏,即Macro,在Emacs中是一个使用非常广泛的技巧。

比如说我有下面一段文字,我需要把前面的注释(即;;)全部去掉,怎么办呢?在一般的编辑器里,大家就会一行一行地删掉,但是如果有一百行、二百行呢?如果有几百个这样的文件呢?

;; (require ‘worklog)
;; (setq worklog-automatic-login t)
;; (add-hook ’emacs-startup-hook
;; (function (lambda ()
;; (worklog-do-task “Hacking emacs” t)
;; )))
;;
;; (add-hook ‘kill-emacs-hook
;; (function (lambda ()
;; (worklog-do-task “logout” t)
;; (worklog-finish)
;; )))

在Emacs中,只需要使用宏就可以快速地把这些多余的东西去掉:

1) 开始录制宏,用C-x (
2) 输入你删除的动作,C-d C-d C-d
3) 移动到下一行,C-n
4) 结束录制宏,用C-x )
5) 用C-x e来使用宏。

当然,在这里,可以利用C-u来重复使用11次这个宏,即命令C-u 11 C-x e

于是,你就能看到;;全部被快速地删掉了。

你还可以对已定义的宏命名并保存到文本中,以便下次再用:

1) 按照上面的过程定义一个宏;
2) M-x name-last-kbd-macro
3) 按提示输入你所要定义的宏名称;
4) 打你的.emacs文件并把光标跳转到特定的位置;
5) M-x insert-kbd-macro
6) 输入你刚刚取的名字。

于是你就看到了有这样的东西存在
(fset ‘delete-double-column
“\C-d\C-d\C-d\C-n”)

这样,你的宏不仅已经被命名,还存到了.emacs里,下次打开Emacs的时候,还能再用,即相当于多拥有了一个命令。

当你要使用这个宏的时候,只要用`M-x <宏名>‘就可以调用你的宏了。

(2) Comments    Read More   
Posted on 26-09-2008
Filed Under (软件) by waterlin

当你看到一个网页有价值而想保存下来的时候,是否是先拷贝一下,然后再贴到Windows自带的txt记事本里把格式去掉,再保存?

有了Firefox,一切都变得很简单了!

QuickNote这个Firefox扩展可以让你将具有参考价值的网文片断即时保存下来。只要选中特定的片断,然后点鼠标右键,再点击”Send to QuickNote“就可以了。虽然QuickNote的功能算不上特别强大,但在使用上倒很方便。如果你需要经常作些笔记的话,那么QuickNote还是值得一用的。

在安装QuickNote之后,你可以在Firefox的侧栏中打开它,也可以作为一个浮动窗口来打开。使用QuickNote的方法有两种:一是,你可以将选择的网文片断通过鼠标右键中的”Send to QuickNote“菜单命令直接发送到QuickNote中;二是,你也可以直接把所选择的网文片断拖动到QuickNote的窗口。QuickNote有一个贴心的设计,它将自动为你附上该网文的网址,以方便你日后查阅。另外,你用不着担心收集的内容是否会丢失,QuickNote会自动加以保存。

除此之外,你还可以调整编辑框的背景色、前景色,设置可使用的Tab数,使用起来真是很贴心。

所以,QuickNote很适合做你的网络书摘工具。每当你看到喜欢的文字,只要选中再发送到QuickNote里,不仅保存下来了文字,还把该段文字的来源给保存下来了。多方便啊!

(1) Comment    Read More   
Posted on 26-09-2008
Filed Under (技术) by waterlin

这两款主题分别是:

color-theme-arjen : http://github.com/credmp/color-theme-arjen/tree/master

color-theme-zenburn : http://github.com/credmp/color-theme-zenburn/tree/master

在 Emacs 中配置主题很简单,把这两个 .el 包所在的目录添加到你的 load-path 里,然后在 .emacs 添加类似的句子:

这样,你的 Emacs 一启动,就会自动启用 color-theme-arjen 主题。该主题的效果如下图所示:

当然,你可以在后面添加更多的主题,你也可以在 Emacs 中选择性地启动某个主题。比如说,你用 arjen 这个主题用得不爽了,马上就可以用命令 M-x color-theme-zenburn 启动 zenburn 主题。zenburn 主题的效果如下图所示:

嗯,我更喜欢 arjen 这个主题。

(0) Comments    Read More   
Posted on 24-09-2008
Filed Under (技术) by waterlin

尝试过很多种方法来记工作日志,有用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.

嗯,又长又臭。

2) 在.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、分类、自动插入所在地和天气情况等功能。

(1) Comment    Read More   
Posted on 22-09-2008
Filed Under (技术) by waterlin

有的时候写文档还是用 Emacs23 + w3m 浏览网页来得方便,不用在凌乱的桌面到处切换,可以直接从 Emacs 的一个 Buffer 快速地切换到另一个 Buffer。

首先区分几个概念:

  1. w3 是用 elisp 写的基于文本的浏览器,只能在 Emacs 中运行。可以看看在 EmacsWiki 中有关 w3 的详细介绍
  2. w3m 是一个文本浏览器,可以在终端或是 xterm 上跑。官方的 w3m 好像是只有 Linux 的包;如果是在 Windows 下,则可以用 Cygwin 来移植。方法很简单,就是从 Cygwin 里安装 w3m包即可,会在 Cygwin/bin 的目录下生成 w3m.exe 以及相关的 dll 文件。你可以在 Cygwin 中运行 w3m 来看看这个软件的效果,例如:

    注意:w3m 和 Emacs 中的 w3 没有任何的关系!
  3. Emacs-w3m 则是 Emacs 调用 w3m 的一个接口。Emacs-w3m 可以在 Emacs 中直接调用 w3m,因此,相比于 w3 来说,速度优势十分明显。

推荐使用 w3m 作为文本浏览器,当然,同样也推荐用 emacs-w3m 作为 w3m 的前端,这比在 Cygwin 或是其他终端裸奔 w3m 方便多了。

现在说一说如何在 Windows 下安装 Emacs-w3m。我使用的是 EmacsW32 版本,即对应最新的 Emacs32 版本。

  1. 首先,我们需要在 cygwin 里把 w3m 安装好。如果你懒得安装,直接下载别人编译好的 w3m.exe 和相关的 dll,放到 cygwin/bin 目录下就可以了。
  2. 把下载下来的 Emacs-w3m,解压到 site-lisp,然后在 Cygwin 或是 cmd 中进入这个目录,运行如下命令:
  3. 不要在 cygwin 里直接运行 configure, make 之类的东西,否则,只是按照你在 cygwin 里 emacs 的版本来编译 emacs-w3m 罢了。
  4. 找到你用命令 2) 生成的文件。在我的电脑上生成的文件是被放在 EmacsWin32 的安装目录 D:\Program Files\Emacs\site-lisp下。这个目标地址有可能会因为你的 Emacs 版本以及你系统的环境变量而有所改变。
  5. 把生成的文件拷到你的 emacs load-path 目录下。我的 load-path 是 ~/emacs/site-lisp。
  6. 配置好你的 .emacs,加入如下这一段:

    在这里,如果不用

    则会提示当前的 Emacs-w3m 版本不支持 Emacs23,需要从 CVS 里下载最新的 emacs-w3m 版本。

现在,你在 Emacs 中用 M-x w3m 就可以用文本模式浏览网页了。

(2) Comments    Read More   
Posted on 19-09-2008
Filed Under (软件) by waterlin

转自free8:http://www.free8.com/daili/dailyproxy.htm

DailyProxy是一家国外的免费在线网页代理服务器,服务器在加拿大,速度一般,页面简洁,广告不多,采用PHProxy在线代理系统程序,支持SSL,可以访问Gmail等https网站。但DailyProxy对中文支持不好,访问有的中文网页会出现乱码,你可以用鼠标右键点击乱码的中文网页,在弹出菜单中选“编码”,再选“简体中文(GB2312)”即可解决乱码问题。

网址:http://www.dailyproxy.info

DailyProxy网页中的地址栏输入你要访问的网站网址,然后点右面的红色“SURF”按钮,即可访问你想上的网站了!

DailyProxy目前好像没有对文件大小做限制,不过速度实在很一般,但是也不失为一种方便的爬墙方法。

(0) Comments    Read More   
Posted on 18-09-2008
Filed Under (技术) by waterlin

Emacs Muse可以同时进行几个项目的设置,不同的项目之间不会相互干扰。比如说,我现在要维护两个Wiki,一个是和自己工作相关的ArrAyWiki,一个是自己的MyWiki,于是我在.emacs中这样设置便可以方便管理ArrAyWiki和MyWiki这两个项目:

;;using muse-mode
(add-to-list ‘load-path “~/emacs/site-lisp/muse/lisp”)

(require ‘muse-mode) ; load authoring mode

(require ‘muse-html) ; load publishing styles I use
(require ‘muse-latex)
(require ‘muse-texinfo)
(require ‘muse-docbook)

(require ‘muse-project) ; publish files in projects

(setq muse-project-alist
‘((“ArrAyWiki” (“~/ArrAyWiki” :default “index”)
(:base “html” :path “~/public_html/ArrAyWiki”)
(:base “pdf” :path “~/public_html/ArrAyWiki/pdf”))
(“MyWiki” (“~/MyWiki” :default “index”)
(:base “html” :path “~/public_html/MyWiki”)
(:base “pdf” :path “~/public_html/MyWiki/pdf”))))

重点在于setq那一部分,详细的解释看看Multiple-Project Example.

在发布项目的时候,主要有两个命令需要使用:

1) 发布本项目文件到指定目录:
M-x muse-project-publish-this-file
如果是用的muse-mode,已经绑定到了C-c C-t快捷键上了。

2) 如果你用1)中的命令,则会默认把文档发布到.emacs里设置好的目录。如果需要把文件单独发布到一个独立的路径,就可以使用C-c M-C-t这个快捷键,即命令
M-x muse-publish-this-file

熟练的使用这些设置与命令,就能非常方便地维护自己的本地Wiki了。

(1) Comment    Read More   
Posted on 17-09-2008
Filed Under (软件) by waterlin

“Blog@35”是国内著名网站建设服务商——35互联最新推出的免费博客服务,采用著名的WordPress MU博客程序系统,WordPress功能强大,操作方便。免费绑定1个域名,10余个模板可供选择,还有几个插件,50M空间(如果觉得小,可使用外链网盘、外链相册做补充),无广告。目前还在测试阶段,发现问题可反馈给“Blog@35”

网址:http://blog.35.com
使用之前,先要注册OpenID,注册后收信确认激活,然后用你的OpenID网址(如:http://yourname.openid.35.com)登陆“Blog@35”就可以使用了。

总体感觉上没有yo2.cn好,模板少,也不知道将来测试阶段结束后,是否会收费。我用这个免费服务搭建了自己的文摘库:http://quote.waterlin.org

(0) Comments    Read More   
Posted on 16-09-2008
Filed Under (技术) by waterlin

其实用Emacs Muse Mode来记笔记非常地好,可以发布成html,PDF,Latex等多种通用格式,可定制强。Muse采用类似标记语言的形式来处理文本,快速高效,方便修改。通过这样的一个工具,可以很方便地在本地搭建一个Wiki,对于我这样经常要用VPN切换网络来连接客户服务器的人来说,非常方便。

Muse Mode的上手非常简单,看看Muse Quick Start就差不多了;当然,更厚更全的文档就要看Muse Document了。

(1) Comment    Read More