Install elisp from emacswiki in batch

EmacsWiki上有好多强大的工具可以下载,甚至有一个专门的工具用于下载elisp,这就是install-elisp.el。如果你还没有下载过,那么需要手工下载、编译、安装和加载,之后就可以利用它的强大功能完成自动化操作。具体配置参见该文件里面的注释。

如果你像我一样,曾经安装过多个elisp工具,那么批量更新就是个问题,又或者有了一台新机器,重新安装一遍也很麻烦。为了解决这个问题,我写了一段小程序,如下:

(defvar wl-emacswiki-utilities-list '(htmlize anything anything-config install-elisp browse-kill-ring))

(defun wl-install-elisp-from-emacswiki ()
  (interactive)
  (let ((install-elisp-confirm-flag nil))
    (dolist (m wl-emacswiki-utilities-list)
      (install-elisp-from-emacswiki (concat (symbol-name m) ".el")))
    (install-elisp "http://www.davep.org/emacs/boxquote.el")
    (install-elisp "http://code.jblevins.org/markdown-mode/markdown-mode.el")
    (install-elisp "http://mumble.net/~campbell/emacs/paredit.el")
    (install-elisp "http://homepage1.nifty.com/bmonkey/emacs/elisp/cldoc.el")))

当然,你也可以把列表直接写在dolist里面,那样更新列表更方便些。在批处理过程中不希望用户使用C-c C-c逐个确认,所以暂时把install-elisp-confirm-flag设为nil

Minutes

上学的时候以为minute就是“分钟”的意思,上班后才知道原来还有“备忘录、记录”的意思。

很早就听说twitter,但是没有尝试,因为觉得不会有人在上面follow我:-(,另外,也不是所有东西都需要发布在网络上。但是记录日常工作还是很重要的,尤其是解决问题的时候,可以避免问题解决了,却忘记是如何解决的这种窘境。

我用Org mode + remember.el实现了一个非常简单的记录功能,配置如下:

(require 'org)
(setq org-directory "~/edata/remember/")
(setq org-remember-templates
      '((?t "* TODO %?n  %in  %a" "~/edata/remember/todo.org" "Tasks")
        (?n "* %u %?nn  %in  %a" "~/edata/remember/notes.org" "Notes")
        (?m "* %Unn  %?%in  %a" "~/edata/remember/minutes.org" "Minutes")))
(setq org-reverse-note-order t)
(autoload 'remember "remember" nil t)
(autoload 'remember-region "remember" nil t)
(define-key global-map [(f8)] 'remember)
(setq remember-annotation-functions '(org-remember-annotation))
(setq remember-handler-functions '(org-remember-handler))
(add-hook 'remember-mode-hook 'org-remember-apply-template)

基本功能如下:使用F8调用remember做记录,标题为当前时间,写完后用C-c C-c存到minutes.org文件里,新条目在上,旧条目在下。