我的~/.emacs
下的emacs配置文件只有一个声明:
(setq default-directory "/var/www/")
我想做的是C-x C-f
并直接进入我的apache目录。但我尝试使用C-x C-f
,我当前的目录是HOME
。
文件被加载,因为我使用了这个:(shell)
并且shell被打开了。谁知道我的错误在哪里?我只想在htdocs中设置启动目录。
答案 0 :(得分:3)
default-directory
没有做你想象的那样。 C-h v
默认目录
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
。
答案 1 :(得分:1)
以防万一有人想知道如何做到这一点:
正如@Pacha所说,当emacs启动时,会显示欢迎屏幕,它会将您的工作目录更改为command-line-default-directory
因此,例如,如果您希望默认目录为“〜/”,请将其添加到.emacs中,您应该正常运行。
(setq command-line-default-directory "~/")
(setq default-directory "~/")
答案 2 :(得分:0)
解决了它,这是一个非常奇怪的问题。
每当我尝试从默认缓冲区(*GNU Emacs*
)打开文件时,它会将默认目录更改为~/
,但是当我尝试从另一个缓冲区打开文件时,它会打开我在变量中指定的那个。