【问题标题】:how to configure emacs to start in a directory (windows)如何配置emacs在目录中启动(windows)
【发布时间】:2017-01-27 02:40:01
【问题描述】:

我在 Windows 下运行 emacs 25.1。它是一个独立的二进制文件,不在 cygwin 下运行

我有一个适用于 windows 和 linux 的 .emacs 文件。然而,在 Windows 上,命令:

(cd "c:/Users/xxx/git")

不在该目录中启动 emacs。该命令有效,因为如果我评估缓冲区,它确实会转到该目录。就好像在我的脚本之后执行了别的东西,导致emacs默认为愚蠢的windows默认值,无论代码在哪里。

有什么解决方法可以让 emacs 在我想要的目录中启动?

【问题讨论】:

    标签: windows emacs


    【解决方案1】:

    创建 Emacs 可执行文件的 Windows 快捷方式,并使用它来启动 Emacs。通过右键单击文件夹bin 中的文件runemacs.exe 并选择创建快捷方式来创建快捷方式。

    然后在快捷方式标签中填写属性

    字段 Target 具有启动 Emacs 的命令:二进制文件(可执行文件)的位置和名称,后跟您想要的任何选项以及您想要开始编辑的任何文件或目录。

    字段 Start in 包含我希望 Emacs 启动的目录。

    例如:

    • 目标:D:\Emacs-25.1\bin\runemacs.exe --debug-init "d:\usr\some-user-name\some-directory"

    • 开始于: d:\usr\some-user-name\some-directory

    然后只需双击您的快捷方式即可启动 Emacs。或者单击它,如果您将它固定到任务栏。

    您可以根据需要为相同的 Emacs 可执行文件(例如具有不同选项或启动目录)或不同的可执行文件(例如不同的 Emacs 版本)创建任意数量的快捷方式。

    【讨论】:

    • 如果必须的话我会接受这个,但你知道为什么在初始化文件运行后会发生这种情况吗?该目录应该开始是我指定的目录,并且一旦 emacs 运行,脚本应该能够覆盖。当我在启动后手动执行脚本时(eval-current-buffer)它可以工作。
    • 我不明白你的评论。初始化文件运行后,您位于Start in 目录中。如果您还提供它作为“文件”来访问,那么您甚至在 Dired 中。您可以随时在 Emacs 中更改当前目录 - 请参阅命令 cd 和变量 default-directory。请参阅 Emacs 手册,节点 File Names
    • 所以在目录中的开始设置之后 .emacs 运行? Unix 中的相同脚本会正确地将目录设置为所需的目录。 .emacs 在进程启动后运行 (AFAIK)
    • 不,AFAIK,Windows 快捷方式Start in 表示在该目录中运行可执行文件,即它是当前可执行文件启动之前。我不是 Windows 专家,但我认为这就是 Start in 的全部意义所在。 的情况是,除非命令选项(包括加载您通过命令行加载的任何 Lisp 文件)或您的 init 文件代码(包括它加载的库) 更改 default-directoryStart in 目录在启动后仍然是当前目录。您可以指定任何目录供 Emacs 访问,并且不会更改 Start in 的目录。
    • 显然我没有完全理解你的问题。我建议您简单地尝试一下Start in 确定 Windows 程序 runemacs.exe 的启动位置。但是您告诉 Emacs 加载的其他命令选项和代码可以更改当前目录 (default-directory)。如果没有命令选项并且您加载的任何代码都没有更改它,那么在处理完您的 init 文件后,default-directory 仍然是Start in 的目录。我相信这在manual 中都有解释。
    【解决方案2】:

    尝试使用emacs-startup-hook,它在处理完命令行和init.el 后运行。

    (defun jpk/emacs-startup-hook ()
      (cd "/some/path"))
    (add-hook 'emacs-startup-hook #'jpk/emacs-startup-hook)
    

    如果这不起作用,则某些软件包正在设置 CWD,您必须对其进行跟踪。

    【讨论】:

      猜你喜欢
      • 2016-08-18
      • 1970-01-01
      • 2014-03-01
      • 2010-09-12
      • 2019-05-05
      • 1970-01-01
      • 2010-10-23
      • 2013-09-14
      • 1970-01-01
      相关资源
      最近更新 更多