Changing the default folder in Emacs

I am fairly new to Emacs and I have been trying to figure out how to change the default folder for C-x C-f on start-up. For instance when I first load Emacs and hit C-x C-f its default folder is C:\emacs\emacs-21.3\bin, but I would rather it be the desktop. I believe there is some way to customize the .emacs file to do this, but I am still unsure what that is.

Update: There are three solutions to the problem that I found to work, however I believe solution 3 is Windows only.

  • Solution 1: Add (cd "C:/Users/Name/Desktop") to the .emacs file

  • Solution 2: Add (setq default-directory "C:/Documents and Settings/USER_NAME/Desktop/") to the .emacs file

  • Solution 3: Right click the Emacs short cut, hit properties and change the start in field to the desired directory.

79216 次浏览

我把

(cd "c:/cvsroot/")

在我的.emacs 和它的工作

You didn't say so, but it sounds like you're starting Emacs from a Windows shortcut.

The directory that you see with c-x c-f is the cwd, in Emacs terms, the default-directory (a variable).

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

If you're using Emacs from the command line, default-directory starts as the directory where you started Emacs (the cwd).

This approach is better than editing your .emacs file, since it will allow you to have more than one shortcuts with more than one starting directory, and it lets you have the normal command line behavior of Emacs if you need it.

CWD = 目前的工作目录 = PWD = present working directory.它在命令行中比在 GUI 中更有意义。

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

Create a shortcut to C:\emacs\emacs-21.3\bin\runemacs.exe. Edit the properties of the shortcut and change the value of Start In: to be whatever you want your default directory to be.

默认文件夹实际上与缓冲区的当前工作文件夹相同,也就是说,对于您使用的每个文件,它可以是不同的。假设您正在处理的文件位于 C:\dir_a中,那么该缓冲区的工作目录默认为 C:\dir_a。您可以使用 M-x cd修改它,然后输入您希望作为默认目录的任何目录(默认情况下,我指的是在执行 C-x C-f时显示的目录)。

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

最后,您可以按照瓦迪姆的建议进行操作

(cd "c:/dir_a/")

.emacs文件中,使该目录成为默认目录,无论如何启动 emacs。

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

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

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

我使用的是 WindowsXP 下的 emacs 22.2.1,上面的答案帮助我在我想要的命令 C-x C-f 的迷你缓冲区中获得响应。一开始我觉得 “ Find file: C: Program Files emacs bin/”就像 Anton。 我的主页设置为“ C: 文档和设置用户名称我的文档”。 我希望在 minibuffer 中对 C-x C-f 的响应是“ Find file: ~/”。 通过将(setq default-目录“ C:/Document and Settings/USER NAME/My Document”)添加到我的。Emacs 文件我能够得到响应“ Find file: C: Document and sets USER NAME My Document/”,这在功能上与“ Find file: ~/”相同。 然而,我注意到另一点。“选项”下的“自定义 Emacs”允许我禁止启动屏幕。现在,当我打开 emacs 时,我立即转到缓冲区。当我在缓冲区中键入 C-x C-f 时,我得到了我想要的确切响应。

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

/Desktop/black _ file

然后打开一个名为“ black _ file”的文件

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

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

你可以输入‘ cd’emacs 命令。(M-x cd)将默认文件夹更改为 one off。

要在 Dired 和 shell 中将默认目录更改为 DESKTOP,请在 ~/. emacs 中输入:

这适用于 WindowsXP。
(setq default-directory (concat“ C: Document and Settings MY _ ACCOUNT DESKTOP”))

在 Windows8中,它可以在桌面上创建快捷方式,并更改快捷方式的属性“ Start In:”。

现在,我按照推荐运行了 Emacs-23.3 bin addpm.exe 程序,Windows-8屏幕(微软的那个可怕的发明)出现了一个指向 Emacs 的图标链接。但是在那里您必须再次更改属性‘ Start In’。(它与桌面上的不同)。 只需右键单击,在底部栏中选择“打开文件位置”(或类似的,我用自己的语言做到了这一点) ,你就会被带到一个新的快捷方式的文件夹中,在这个快捷方式中,你还可以(必须)更改属性“ Start In:”。

有点复杂,但其实很简单。

因为最烦人的事情是当你只是使用快捷方式的时候,Windows Emacs 会将你转储到 System32中,但是想要其他情况下都能正常工作,只需要使用一点省略号..。

(当(字符串 < “ C: WINDOWS system32”default-目录)(setq default-目录“ ~/”)

因此,只有当您最终进入系统时,它才会默认设置为您的主目录。唯一的缺点是,如果你真的想在 System32中启动 emacs..。

对于 windows 用户,我发现的最佳方法是为 runemacs.exe创建快捷方式,并将该快捷方式放在 Notes 文件夹的根目录中。

这样,当您使用此快捷方式打开 emacs 时,默认情况下,它将在根目录中打开,而不必专门设置 Start In属性(you can leave the Start In property blank)。

参考文献 : 根据微软的说法,如果你将“开始”框留空,脚本将在当前工作目录中运行

提示:

此外,如果您已经组织您的笔记到多个根文件夹(个人,工作等..。.),您可以在每个文件夹中复制多个这样的快捷方式,以打开具有自己默认目录的多个 emacs 实例。