我的问题:
我的办公室电脑在 Windows 7 下运行,我的笔记本在 Linux (openSuse 12.1) 下运行。我想在 org-mode 的议程视图中包含某个文件“foo.org”。在 Windows 7 下,路径是 T:/123-12/foo.org ;在 Linux 下,路径是 ~/Documents/Projects/12-123-Projectname/foo.org
在两台计算机上都有一个相同的文件“Projects.org”,其中包含我的项目以及所有时间表、截止日期、花里胡哨。但是这个文件 Projects.org 太大了,我需要将内容交换到项目文件夹中。该文件每天在两台计算机之间同步,当然这两个项目也会同步。
如何将 foo.org 包含在两台计算机的议程视图中,并在主文件“Project.org”中包含一个条目?如果 linux / 如果 windows 7 是否有可能进行切换?或者可以用符号链接来完成吗?
1. 编辑pmr对https://stackoverflow.com/a/11611956/1171221的回答
我可以为每个操作系统添加许多文件吗?例如:
(setq org-agenda-files
(if (eq system-type 'windows-nt)
'("windows-path1/file1.org" "windows-path2/file1.org" "windows-path3/foo7.org")
'("unix-path1/file1.org" "unix-path2/file2.org" "unix-path3/foo7.org")))
感谢您的友好帮助。坦率地说,为每个新的“file-xy.org”更改 .emacs-file 很麻烦,但这似乎是 org.el 的设计。
重新考虑您的答案:我在 Linux 和 Windows 上自然有不同的“.emacs”,无法同步 .emacs 文件。要么我必须将此定义外包(我可以以某种方式将其放入我的大型 project.org 中吗?)到一个可以同步的文件中,或者,我必须添加任何额外的“foo-xy.org”手动到相应的 .emacs 文件,我不需要操作系统之间的区别。
2. 编辑:解决方案
pmrs 的回答和评论是关键。我需要一个文件来提供 Windows 和 Linux 之间的切换。但是我在这两台机器上的 .emacs 文件向不同的方向增长,需要花费太多精力来对齐它们。
作为另一个可以在两台机器之间保持同步的文件,我编写了我的第一个 lisp 文件:AW-org-agenda-files.el,它基本上看起来像这样:
;;; AW-org-agenda-files.el --- *.org-Dateien mit TODOs in agenda-view einbeziehen
;; Copyright: AW
;; Maintainer: AW
;; Keywords: customisation of Orgmode
;; Package: emacs
(setq org-agenda-files
(if (eq system-type 'windows-nt)
'("u:/Emacs/whatever.org" "u:/Emacs/Client1.org" "u:/Emacs/Client2.org"
"u:/Emacs/Privat.org" "t:/222-2012/file.org")
'("~/Dokumente/Technik-u-Dokus/Emacs/whatever.org"
"~/Dokumente/Technik-u-Dokus/Emacs/Client1.org" "~/Dokumente/Technik-u-Dokus/Emacs/Client2.org" "~/Dokumente/RA-win/2012-222-name/file.org")
))
(provide 'AW-org-agenda-files)
;;; end