Macos 将emacs的默认目录更改为';可可emacs';

Macos 将emacs的默认目录更改为';可可emacs';,macos,emacs,Macos,Emacs,如中所述,将(setq default directory“~/Desktop/mag”)放入.emacs应该会更改默认目录 当我在mac上使用emacs时,它不起作用。C-xc-f仍然显示~/不~/桌面/mag (cd“Users/smcho/Desktop/mag”)也给了我这个错误-错误:通过CDPATH环境变量找不到这样的目录 他们怎么了?对你的问题直截了当的回答是: (setq-default default-directory "~/Desktop/mag") 阅读变量(C-h v

如中所述,将(setq default directory“~/Desktop/mag”)放入.emacs应该会更改默认目录

当我在mac上使用emacs时,它不起作用。C-xc-f仍然显示~/不~/桌面/mag

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


他们怎么了?

对你的问题直截了当的回答是:

(setq-default default-directory "~/Desktop/mag")
阅读变量(C-h v默认目录RET)的文档,您将看到:

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

也就是说,打开文件会自动将
默认目录设置为文件的路径

因此,如果您总是希望
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)))

这个问题可能是重复的。虽然很难判断。

提示C-x C-f('find-file')中显示的目录来自默认目录的值,该值是缓冲区局部变量。首次启动Emacs时,显示的初始缓冲区是GNU Emacs缓冲区。该缓冲区的默认目录是从变量命令行默认目录设置的

那么,试试这个:

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

除了上面关于
默认目录
的注释外,我还必须防止emacs启动屏幕启动,以便后续命令(如
dired
)在启动时从
调用时实际显示其缓冲区。emacs

   (setq inhibit-splash-screen t)

我在.emacs中添加了代码,但是C-C-f显示了~/not~/Desktop/mag。@prosseek您总是希望
C-C-f
~/Desktop/mag
开始吗?这有点不同,我想我已经回答了。我会更新我的答案。对不起,我很困惑。C-x C-f是我打算用来打开“~/Desktop/mag”的关键,但我找到了一种使用C-C-f打开它的方法也没关系。@proseek-我想知道它是否是
C-x C-f
,我会更新我的答案。你是否可能需要在
(cd)/Users/smcho/Desktop/mag)路径的前面加一个“
?(指尖没有mac电脑可供检查)。虽然我不认为这会有你真正想要的效果,但那是行不通的。但崔家有。事实上,我认为有一个比他提议的更简单的版本。@吉姆·布兰迪:你的解释很完美。我想知道为什么
(cd)
不起作用。谢谢