我的问题:
我的办公电脑在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://*.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文件很麻烦,但这似乎是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
解决方法:
用于生成议程的文件存储在
变量组织议程文件.您可以在.emacs中有条件地初始化此变量
根据平台使用系统类型变量.
(setq org-agenda-files
(if (eq system-type 'windows-nt)
'("windows-path/file.org")
'("unix-path/file.org")))
有关更多信息:C-h v system-type RET