我的 emacs 配置文件~/.emacs
只有一个声明:
(setq default-directory "/var/www/")
我想要做的是C-x C-f
直接进入我的 apache 目录。但我尝试使用C-x C-f
,我当前的目录是HOME
.
该文件被加载,因为我使用了这个:(shell)
并且外壳被打开。有人知道我的错误在哪里吗?我只想在 htdocs 中设置启动目录。
default-directory
没有按照您的想法行事。C-h v
default-directory
default-directory is a variable defined in `buffer.c'.
Its value is "/"
Local in buffer stackoverflow.com/questions/14914353; global value is nil
Automatically becomes buffer-local when set in any fashion.
This variable is safe as a file local variable if its value
satisfies the predicate `stringp'.
Documentation:
Name of default directory of current buffer. Should end with slash.
To interactively change the default directory, use command `cd'.
它是一个本地缓冲区(即特定于缓冲区)的变量,这意味着它的值根据当前处于活动状态的缓冲区而有所不同。因此,当您认为已将其设置为“/var/www”时,您只是在访问该目录中已有的文件。
如果要从“/var/www”打开文件,则需要创建自己的命令,将“/var/www”绑定到default-directory
.
以防万一有人想知道如何做到这一点:
正如@Pacha 所说,当 emacs 启动时,会出现欢迎屏幕,它将您的工作目录更改为command-line-default-directory
因此,例如,如果您希望您的默认目录为“~/”,请将其添加到您的 .emacs 中,您应该会走上正轨。
(setq command-line-default-directory "~/")
(setq default-directory "~/")
解决了,真是个奇怪的问题。
每次我尝试从默认缓冲区 ( *GNU Emacs*
) 打开文件时,它会将默认目录更改为~/
,但是当我尝试从另一个缓冲区打开文件时,它会打开我在变量中指定的文件。