更改Emacs中的默认文件夹

时间:2008-09-13 10:34:52

标签: emacs customization directory

我是Emacs的新手,我一直试图弄清楚如何在启动时更改 C-x C-f 的默认文件夹。例如,当我第一次加载Emacs并点击 C-x C-f 时,它的默认文件夹是C:\emacs\emacs-21.3\bin,但我宁愿它是桌面。我相信有一些方法可以自定义.emacs文件来执行此操作,但我仍然不确定它是什么。

更新:我发现有三种解决方案可以解决,但我认为解决方案3只适用于Windows。

  • 解决方案1:将(cd "C:/Users/Name/Desktop")添加到.emacs文件

  • 解决方案2:将(setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/")添加到.emacs文件

  • 解决方案3:右键单击Emacs快捷方式,点击属性并将开始字段更改为所需目录。

11 个答案:

答案 0 :(得分:77)

你没有这么说,但听起来你是从Windows快捷方式启动Emacs。

使用c-x c-f看到的目录是cwd,在Emacs术语中是default-directory(变量)。

使用MS Windows快捷方式启动Emacs时,default-directory最初是快捷方式属性的“开始”字段中指定的文件夹(目录)。右键单击快捷方式,选择Properties,然后在Start In字段中键入桌面路径。

如果您从命令行使用Emacs,default-directory将作为启动Emacs(cwd)的目录启动。

这种方法比编辑.emacs文件更好,因为它允许您有多个具有多个起始目录的快捷方式,并且如果需要,它可以让您拥有Emacs的正常命令行行为。 / p>

CWD = current working directory = PWD = present working directory。它在命令行比在GUI中更有意义。

答案 1 :(得分:47)

我认为您需要添加到.emacs的行是

(setq default-directory "C:/Documents and Settings/USER NAME/Desktop/" )

除非您打开文件,否则Emacs将以这种方式在您的桌面上启动。它通常会在当前缓冲区中与文件相同的目录中启动。

答案 2 :(得分:26)

您可以输入'cd'egcs命令。 (M-x cd)将默认文件夹更改为一次。

答案 3 :(得分:24)

我已经把

(cd "c:/cvsroot/")

在我的.emacs中,它完成了工作

答案 4 :(得分:6)

默认文件夹实际上与缓冲区的当前工作文件夹相同,即对于您使用的每个文件,它可能不同。假设您使用的文件位于C:\dir_a,则该缓冲区的工作目录默认为C:\dir_a。您可以使用M-x cd更改此设置,然后输入您希望成为默认目录的任何目录(默认情况下,我指的是当您C-x C-f时显示的目录。)

如果您在未打开文件的情况下启动emacs,则最终会打开*scratch*缓冲区。如果从Windows快捷方式启动emacs,则工作目录将与快捷方式属性中指定的相同。如果从命令行启动它,它将是您启动它的目录。您仍然可以使用M-x cd更改此默认目录,也可以从*scratch*缓冲区更改。

最后,你可以像Vadim建议的那样做,并把

(cd "c:/dir_a/")

.emacs文件中,无论您如何启动emacs,都要将该目录设为默认目录。

答案 5 :(得分:4)

当你在Windows上时,你可以使用快捷方式。

创建C:\emacs\emacs-21.3\bin\runemacs.exe的快捷方式。编辑快捷方式的属性,并将Start In:的值更改为您希望的默认目录。

答案 6 :(得分:4)

我在Windows XP下使用emacs 22.2.1并得到上述答案的帮助,以获得我想要命令C-x C-f的迷你缓冲区中的响应。最初我得到了 “查找文件:C:\ Program Files \ emacs \ bin /”就像Anton一样。 我将HOME设置为“C:\ Documents and settings \ USER NAME \ My Documents”。 我想在迷你缓冲区中对C-x C-f的响应是“查找文件:〜/”。 通过将(setq default-directory“C:/ Documents and Settings / USER NAME / My Documents”)添加到我的.emacs文件,我能够得到响应“查找文件:C:\ Documents and settings \ USER NAME \ My Documents /“这在功能上与”查找文件:〜/“相同。 但是,我注意到了另外一点。 “选项”下的“自定义Emacs”允许我禁止启动屏幕。现在,当我打开emacs时,我立即进入暂存缓冲区。当我在暂存缓冲区中键入C-x C-f时,我得到了我想要的确切响应。

答案 7 :(得分:1)

我已经在我的快捷方式(在Gnome,Linux中)添加了一个空白虚拟文件名的pramater,并指定了该目录。由于我的emacs默认为“home”,我只想说:

/桌面/ blank_file

然后打开一个名为“blank_file”的文件

这也将该emacs会话的当前工作目录移动到桌面。

如果我碰巧把东西放在“blank_file”中然后保存它,当然,我已经保存了那些东西。这可能是一个烦恼,或者它可能是一件好事,取决于!

答案 8 :(得分:1)

要在Dired中将默认目录更改为DESKTOP,并将shell放入〜/ .emacs:

;;这适用于Windows XP (setq default-directory(concat“C:\ Documents and Settings \ MY_ACCOUNT \ DESKTOP \”))

答案 9 :(得分:0)

在Windows 8中,它可以在桌面中创建快捷方式,并更改属性“开始于:'为快捷方式。

现在,我按照推荐的方式运行程序emacs-23.3 \ bin \ addpm.exe,而Windows-8屏幕(来自Microsoft的可怕发明)它似乎是Emacs的图标链接。但是你必须再次更改房产' Start In'。 (它与桌面中的不同)。 只需右键单击,然后在底部栏中选择'打开文件位置' (或类似的,我用我的语言做过),然后你被带到一个新的快捷方式的文件夹,你可以(必须)也改变属性'开始于:'。

有点参与,但实际上很容易。

答案 10 :(得分:0)

因为最烦人的事情就是让Windows在您使用快捷方式时将Emacs转储到system32中,但是希望其他所有情况都能正常工作,只需使用一些elisp ......

(when(string<“C:\ WINDOWS \ system32”default-directory)(setq default-directory“〜/”))

因此,当您最终进入系统时,它将仅默认为您的主目录。唯一的缺点是如果你真的想在system32中启动emacs ......