我的问题是:
我的办公室pc在Windows7下运行,我的笔记本在Linux下运行(openSuse 12.1)。我想在组织模式的议程视图中包含一个特定的文件"foo.org“。在Windows7下,路径是T:/123-12/foo.org;在Linux下,路径是~/Documents/Projects/12-123-Projectname/foo.org。
在这两台计算机上都有一个相同的文件"Projects.org",它由我的项目组成,包括所有的时间表、截止日期、钟声和口哨。但是这个文件Projects.org太大了,我需要将内容交换到项目文件夹中。这个文件每天都在两台计算机之间同步,当然,这两个项目也是同步的。
如何将foo.org包含在两台计算机的议程视图中,并在主文件"Project.org“中包含一个条目?如果linux / if windows 7,是否有可能进行切换?或者可以用符号链接来完成呢?
1.编辑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“更改. every是很麻烦的,但这似乎是org.el的一个设计。
再考虑一下你的答案:很自然,我在Linux和Windows上有不同的".emacs“,..emacs文件不能同步。或者我不得不外包这个定义(我可以将它以某种方式放到我的大型project.org中吗?)在一个可以同步的文件中,或者,mh中,我必须手动将任何额外的"foo-xy.org“添加到相应的..emacs文件中,并且我不需要区分操作系统。
2.编辑:解决方案
pmrs的回答和评论是关键。我需要一个文件提供Windows和Linux之间的切换。但我的..emacs文件在这两台机器上的增长方向不同,太多的努力使它们对齐。
作为另一个可以在两台机器之间保持同步的文件,我编写了我的第一个lisp文件:AW Againt-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发布于 2013-07-01 13:09:48
另一种解决方案是为系统之间的路径差异创建变量,并创建一个列出所有文件的变量。在您的情况下(省略不遵循相同模式的最终文件):
(defvar my/org-windows "u:/Emacs")
(defvar my/org-linux "~/Dokumente/Technik-u-Dokus/Emacs")
(defvar my/org-agenda-files '("whatever.org"
"Client1.org"
"Client2.org"
"Privat.org"))然后,您只需将路径mapcar到文件上,就可以得到议程文件列表。
(mapcar (lambda (i)
(expand-file-name i
(if (eq system-type 'windows-nt)
my/org-windows
my/org-linux)))
my/org-agenda-files)这将不适用于任何具有其他路径的文件,但如果您有一组有限的路径,则可以为每个位置定义一组变量,然后只需更新该文件夹中的实际文件列表。
https://stackoverflow.com/questions/11610997
复制相似问题