1

我的 emacs 配置文件~/.emacs只有一个声明:

(setq default-directory "/var/www/")

我想要做的是C-x C-f直接进入我的 apache 目录。但我尝试使用C-x C-f,我当前的目录是HOME.

该文件被加载,因为我使用了这个:(shell)并且外壳被打开。有人知道我的错误在哪里吗?我只想在 htdocs 中设置启动目录。

4

3 回答 3

3

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.

于 2013-02-17T06:28:29.903 回答
1

以防万一有人想知道如何做到这一点:

正如@Pacha 所说,当 emacs 启动时,会出现欢迎屏幕,它将您的工作目录更改为command-line-default-directory

因此,例如,如果您希望您的默认目录为“~/”,请将其添加到您的 .emacs 中,您应该会走上正轨。

(setq command-line-default-directory "~/")
(setq default-directory "~/")
于 2015-02-06T16:02:46.233 回答
0

解决了,真是个奇怪的问题。

每次我尝试从默认缓冲区 ( *GNU Emacs*) 打开文件时,它会将默认目录更改为~/,但是当我尝试从另一个缓冲区打开文件时,它会打开我在变量中指定的文件。

于 2013-02-16T21:38:19.517 回答