使用'cocoa emacs'更改emacs的默认目录

时间:2010-07-29 15:29:52

标签: macos emacs

here中所述,在.emacs中放置(setq default-directory“〜/ Desktop / mag”)应该更改默认目录。

当我在Mac上使用emacs时,它不起作用。 C-x C-f仍显示〜/ not~ / Desktop / mag。

(cd“Users / smcho / Desktop / mag”)也给我这个错误 - 错误:没有通过CDPATH环境变量找到这样的目录

他们有什么问题?

3 个答案:

答案 0 :(得分:15)

C-x C-f('find-file')提示中出现的目录来自default-directory的值,该目录是缓冲区局部变量。首次启动Emacs时,显示的初始缓冲区是 GNU Emacs 缓冲区。该缓冲区的default-directory是从变量command-line-default-directory。

设置的

所以,试试这个:

(setq command-line-default-directory "~/Desktop/mag")

答案 1 :(得分:6)

您问题的直接答案是:

(setq-default default-directory "~/Desktop/mag")

阅读变量的文档( C-h v default-directory RET ),您将看到:

  

自动成为缓冲区本地   以任何方式设置。这个   变量作为本地文件是安全的   变量,如果它的值满足   谓词`stringp'。

也就是说,打开文件会自动将default-directory设置为文件路径...

因此,如果您始终希望find-file从该目录开始,您可以使用:

(global-set-key (kbd "C-x C-f") 'my-find-file)
(defun my-find-file ()
  "force a starting path"
  (interactive)
  (let ((default-directory "~/scratch/"))
    (call-interactively 'find-file)))

此问题可能与Preventing automatic change of default-directory重复。虽然很难分辨。

答案 2 :(得分:3)

除了上面关于default-directory的注释之外,我还必须阻止启动emacs启动画面,以便在dired调用时使.emacs等后续命令实际显示其缓冲区在启动时:

   (setq inhibit-splash-screen t)