如何将启动目录作为参数传递给emacs

时间:2012-12-02 18:15:02

标签: emacs batch-file

比方说,我在Windows上有emacs。我想做的是从cmd运行emacs并将我的启动目录作为emacs中的默认目录。

我已将emacs目录放入我的PATH变量中,因此我可以从cmd中的任何位置执行'runemacs'。但是emacs中的默认目录不等于emacs的启动目录。 C-x C-f仍指向'c:\ emacs',而后者则在emacs配置中指定 (setq default-directory“C:/ emacs”)。

如何让默认目录指向启动目录?

2 个答案:

答案 0 :(得分:5)

你可以这样做:

(add-to-list
 'command-switch-alist
 '("-cwd" . (lambda (x) (setq default-directory (or x (getenv "PWD"))))))

在您的.emacs文件中,为emacs -cwd创建一个别名,或者,如果我理解正确的话,在Windows上它将是runemacs -cwd。另外,iirc,在Windows上它是CWD,而不是PWD。嗯,这段代码的含义是:

  • 添加一个函数来处理Emacs的自定义参数,即-cwd
  • 触发时,获取环境当前工作目录的值,并将default-directory设置为它。

答案 1 :(得分:0)

如果从配置中删除行(setq default-directory "C:/emacs"),它是否完全符合您的要求?