首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Org- Linux / Windows 7下的模式:如何在议程视图中包含相同的文件??这些文件驻留在不同的地方,取决于操作系统。

Org- Linux / Windows 7下的模式:如何在议程视图中包含相同的文件??这些文件驻留在不同的地方,取决于操作系统。
EN

Stack Overflow用户
提问于 2012-07-23 10:45:26
回答 1查看 608关注 0票数 3

我的问题是:

我的办公室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的答案

我可以为每个操作系统添加许多文件吗?例如:

代码语言:javascript
复制
(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,它基本上如下所示:

代码语言:javascript
复制
;;; 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
EN

回答 1

Stack Overflow用户

发布于 2013-07-01 13:09:48

另一种解决方案是为系统之间的路径差异创建变量,并创建一个列出所有文件的变量。在您的情况下(省略不遵循相同模式的最终文件):

代码语言:javascript
复制
(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到文件上,就可以得到议程文件列表。

代码语言:javascript
复制
(mapcar (lambda (i)
          (expand-file-name i
                            (if (eq system-type 'windows-nt)
                                my/org-windows
                              my/org-linux)))
        my/org-agenda-files)

这将不适用于任何具有其他路径的文件,但如果您有一组有限的路径,则可以为每个位置定义一组变量,然后只需更新该文件夹中的实际文件列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11610997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档