?

Log in

No account? Create an account
fedora 蓝色小药丸

Org-mode

在工作的电脑上也装了 emacs。(以下安装笔记不尽准确, http://www.gnu.org/software/emacs/windows/big.html 有全面的配置指南。)我习惯把文件装到 c:\cygwin\Opt 目录,所以目录树是这样子

c:\cygwin\Opt\emacs-24.2 从 http://ftp.gnu.org/gnu/emacs/windows/ zip 包解压的内容
c:\cygwin\Opt\bin\emacs.bat 一个批处理文件,用来设置环境变量

set HOME=c:\cygwin\home\byuan
set EXE=runemacs.exe
set BIN_FOLDER=c:\cygwin\Opt\emacs-24.2\bin
set EMACS=%BIN_FOLDER%\%EXE%
cd "%HOME%"
"%EMACS%" %1


然后在打开 .org 文件时,设置文件关联。在某个帖子里说必须怎么装 emacs,不过最关键的应该还是安装路径不要有空格。不知道为什么这里 %1 可以不加引号?而且如果加了引号就会出错。

然后,在 ~/.emacs.d/init.el 里配置一下 org-agenda-files,从 so 的帖子里看到可以为 windows 和 linux 分别配置。

edit: 这个代码会被 C-c [ 和 C-c ] 覆盖掉,所以还是不要费这个功夫。。要么就得时刻关注 init.el 是不是被不小心改掉了。
edit: 最终还是决定不要用这种配置,两个机器都配置 org-directory 指向 Dropbox 最方便了

; use Dropbox but not MobileOrg
(require 'org)
(let ((BY-org-directory
       (concat
    (file-name-as-directory
     (getenv "USERPROFILE"))
    "Dropbox/org")))
  (if (file-directory-p BY-org-directory)
      (setq org-directory BY-org-directory)))


有个帖子说,在 init.el 里可以加一段脚本,可以自动编译、更新已有的 .elc 文件。

; http://ergoemacs.org/emacs/organize_your_dot_emacs.html
(defun byte-compile-current-buffer ()
  "`byte-compile' current buffer if it's emacs-lisp-mode and compiled file exists."
  (interactive)
  (when (and (eq major-mode 'emacs-lisp-mode)
             (file-exists-p (byte-compile-dest-file buffer-file-name)))
    (byte-compile-file buffer-file-name)))

; byte compile if .elc exists
(add-hook 'after-save-hook 'byte-compile-current-buffer)


不过,改了 init.el 的话,如果语法出错,就需要手动地去 byte-compile-file,不然 init.elc 总是旧的。这个年代久远的系统,对这种小错误太宽容了。

edit: 如果 init.el 不是交互方式修改的,比如"custom-set-variables was added by Custom",怎么知道它会不会自动做 byte-compile-file 呢?还是和上面的问题一样,得时刻关注自己的 init.el 么

真正应用这个东西,还得把200页的manual读一遍。最好是直接读info格式,翻页跳转很方便。帮助系统也很强大,也许是因为emacs太古老,内容太繁杂,所以不得不如此。今天的 emacs 已经到了 24.2 版,很容易用,跟 notepad 差不多。许多默认的配置都很合理。只要别尝试在里面按 windows 的快捷键,普通人上手毫无问题——毕竟普通人在 notepad 里也不会按快捷键。还是用鼠标、菜单比较多吧 :)

接下来是得找个地方同步文件。TBC..

Comments

试试CUA keys

试试CUA keys,可以使用Ctrl-X/Ctrl-C/Ctrl-V快捷键。