更改Emacs中的默认文件夹


107

我对Emacs相当陌生,并且一直在尝试找出如何C-x C-f在启动时更改默认文件夹。例如,当我第一次加载Emacs并点击C-x C-f其默认文件夹为时C:\emacs\emacs-21.3\bin,我宁愿将它作为桌面。我相信可以通过某种方式自定义.emacs文件来执行此操作,但是我仍然不确定那是什么。

更新:有3种解决方案可以解决该问题,但是我认为解决方案3仅适用于Windows。

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

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

  • 解决方案3:右键单击Emacs快捷方式,单击属性,然后将start in字段更改为所需目录。

Answers:


84

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

用cx cf看到的目录是cwd(用Emacs来讲,是default-directory一个(变量))。

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

如果从命令行使用Emacs,则从default-directory启动Emacs的目录(即cwd)开始。

这种方法比编辑.emacs文件更好,因为它使您可以拥有多个具有多个起始目录的快捷方式,并且可以根据需要使用Emacs的常规命令行行为。

CWD = 当前工作目录 = PWD = 当前工作目录。在命令行中,它比在GUI中更有意义。


是的,我在Windows上使用emacs。
安东

5
这也适用于MacOS。我将此添加到了我的.emacs:(setq default-directory (concat (getenv "HOME") "/"))
vy32 2013年

而且,如果您希望Emacs从该目录的Dired开始,则除了将其放在Start In字段中之外,还应在字段末尾添加Target一个或多个空格,并将其括在双引号(")之间。例如:"d:\path\to\the\folder"
Drew

49

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

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

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



24

我放了

(cd "c:/cvsroot/")

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


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,都要将该目录设置为默认目录。


4

当您在Windows上时,可以使用快捷方式进行操作。

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


4

我在Windows XP下使用emacs 22.2.1,上面的回答已帮助我在对命令Cx Cf的微型缓冲区中获取响应。最初,我像安东一样得到“查找文件:C:\ Program Files \ emacs \ bin /”。我将HOME设置为“ C:\ Documents and settings \ USER NAME \ My Documents”。我想要在迷你缓冲区中对Cx Cf的响应是“查找文件:〜/”。通过向我的.emacs文件添加(setq默认目录“ C:/ Documents and Settings / USER NAME / My Documents”),我可以得到响应“查找文件:C:\ Documents and settings \ USER NAME \ My Documents” /”,其功能与“查找文件:〜/”相同。但是,我注意到了另一点。“选项”下的“自定义Emacs”使我无法启动屏幕。现在,当我打开emacs时,我立即进入暂存缓冲区。当我在暂存缓冲区中键入Cx Cf时,会得到我想要的确切响应。


+1表示禁止启动屏幕。我发现这是Windows 10系统上的关键。我在相关问题stackoverflow.com/a/38435697/823636
Rob_before_edits '16

1

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

/桌面/空白文件

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

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

如果我碰巧将东西放在“ blank_file”中,那么将其保存,当然,我已经保存了这些东西。视情况而定,这可能是一件烦人的事,也可能是一件好事!


1

要将默认目录更改为Dired的DESKTOP,然后将其放入外壳〜/ .emacs:

;;这适用于Windows XP。
(setq默认目录(目录“ C:\ Documents and Settings \ MY_ACCOUNT \ DESKTOP \”))


0

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

现在,我按照推荐的程序运行了emacs-23.3 \ bin \ addpm.exe,在Windows-8屏幕(Microsoft的那项令人发指的发明)中,它出现了一个指向Emacs的图标链接。但是在那里,您必须再次更改属性“开始于”。(与台式机不同)。只需右键单击,在底部栏中选择“打开文件位置”(或类似的操作,我用我的语言完成了此操作),然后使用新的快捷方式将您转到该文件夹​​,在其中您还可以(必须)更改属性“开始于:”。

有点涉及,但实际上很容易。


0

因为最烦人的事情是让Windows Emacs在您仅使用快捷方式时将您转入system32,但希望其他所有情况都可以使用,因此请使用一些省略号...

(当(字符串<“ C:\ WINDOWS \ system32”默认目录)(setq默认目录“〜/”)时)

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.