如here中所述,在.emacs中放置(setq default-directory“〜/ Desktop / mag”)应该更改默认目录。
当我在Mac上使用emacs时,它不起作用。 C-x C-f仍显示〜/ not~ / Desktop / mag。
(cd“Users / smcho / Desktop / mag”)也给我这个错误 - 错误:没有通过CDPATH环境变量找到这样的目录
他们有什么问题?
答案 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)