在Emacs中同步文件

时间:2012-11-18 13:56:54

标签: emacs org-mode

我是Emacs的新手,我对计算不太了解。但是几周前我发现了Emacs,我对它的可能性感到非常惊讶。我期待将它用于LaTeX文档编辑,一些编程,创建我自己的elisp函数,当然还可以使用org-mode创建计划和注释。给我带来的主要不便是我在几个地方使用Emacs(我的笔记本电脑,家用和工作电脑)。在工作中,我未经授权安装软件。如果我在.emacs文件或待办事项列表中进行一些更改,我需要在任何地方进行同步。我正在使用Dropbox,但它有点烦人,因为在工作中我需要下载它覆盖较旧的等等。我需要一些实用的建议,我如何同步一些私人文件,在一个地方所做的更改可以快速加载到其他的地方。

P.S。抱歉我的英语不好:)

3 个答案:

答案 0 :(得分:0)

Emacs是可移植的设计。任何平台特定功能都没有依赖性。

因此,理论上,您在此处描述的问题归结为纯文件同步问题。如果我做对了,真正的限制是贵公司施加的公司限制。

我认为DropBox使用起来很繁琐,因为你不允许使用创建完全集成的应用程序,只限于你的Web界面...如果是这种情况,你可能会受到同样的限制所有其他选择。

我建议在这些环境中使用的一个选项是在USB记忆棒上安装Emacs或至少你的.emacs文件夹(我喜欢看起来像鼠标加密狗的微型USB记忆棒,并且很难被注意到。)

您可以在任何地方使用emacs,如果您担心备份,您可以随时在正在使用的其他计算机上以及拥有更多访问权限的计算机上实施手动或自动备份解决方案。

答案 1 :(得分:0)

您可以确定使用Dropbox,但您可能还需要检查SugarSync,因为它允许您在计算机上与任何其他设备共享任何文件(并且也可以在其网站上在线访问)。

我的结构是这样的:

我有一个sugarsynced文件夹“school”,我有我的LaTeX文件(和pdf)和共享的R文件。我做作业,在课堂上我通常从手机上阅读我的PDF文件。一切都会自动同步。

对于我的Emacs文件,我使用Dropbox:好的是,在其他计算机上,您可以确保它看起来完全相同的文件夹。

您通常希望结构为:

<强> ... /升降梭箱/ Emacs的/的.emacs

在我的.emacs中,您可以定义所有加载路径和要求,例如:

 (let ((base "/Username/Dropbox/emacs/.emacs.d/"))
  (add-to-list 'load-path base)
  (dolist (f (directory-files base))
    (let ((name (concat base "/" f)))
      (when (and (file-directory-p name) 
                 (not (equal f ".."))
                 (not (equal f ".")))
        (add-to-list 'load-path name)))))

您还应该设置自定义文件:

(setq custom-file "/path-to-dropbox/.emacs.d/emacs-custom.el")
(load custom-file)

并将备份存储在文件夹中:

(setq backup-directory-alist '(("." . "/path-to-dropbox/.emacs.d/backups")))

我会建议这样的结构:

emacs-display.el    (any visual stuff)
macros.el
misc-functions.el
external-plugins.el  (file for loading external packages and adjusts settings)
keybindings.el  (all your keybbindings)

您还可以设置模式关联以加载您的个人文件,例如LaTeX:

(eval-after-load 'latex '(load "/path-to-dropbox/.emacs.d/personal-emacs-latex"))

在此,您可以在使用LaTeX时进行所有自定义。

... / Dropbox / Emacs / .emacs.d

在此文件夹中存储实际文件。当因某种原因无效时,删除某些东西变得非常容易。

答案 2 :(得分:0)

就组织模式的任务和事件而言,一个选项是与Toodledo服务器的同步 - 大多数流行的移动计算设备都有Toodledo应用程序。该图书馆位于以下链接:

https://github.com/christopherjwhite/org-toodledo

我修改了org-toodledo库以使其更像Toodledo,在我的.emacs文件中,我使用了:

(setq org-todo-keywords '(
  (sequence
  "Active(a)"
  "Next Action(n)"
  "Canceled(c)"
  "Hold(h)"
  "Reference(r)"
  "Delegated(d)"
  "Waiting(w)"
  "Postponed(P)"
  "Someday(s)"
  "Planning(p)"
  "|"
  "None(N)") ))

(setq org-toodledo-status-to-org-map '(
    ("Active" . "Active")
    ("Next Action" . "Next Action")
    ("Reference" . "Reference")
    ("Delegated" . "Delegated")
    ("Waiting" . "Waiting")
    ("Someday" . "Someday")
    ("Planning" . "Planning")
    ("None" . "None")
    ("Hold" . "Hold")
    ("Postponed" . "Postponed")
    ("Canceled" . "Canceled") ))

此外,"DONE"库中提及org-toodledo的地方,我将其更改为"None" - 我用于完成的任务/事件。

我还修改了代码的另一个区域,以便我可以像Toodledo一样拥有五(5)个优先级。