更改 Emacs 中的默认文件夹

Posted

技术标签:

【中文标题】更改 Emacs 中的默认文件夹【英文标题】:Changing the default folder in Emacs 【发布时间】:2010-09-08 19:06:14 【问题描述】:

我是 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 快捷方式,点击属性并将起始字段更改为所需的目录。

【问题讨论】:

【参考方案1】:

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

这样,当您使用此快捷方式打开 emacs 时,默认会在根目录中打开,而无需专门设置 Start In 属性(您可以将 Start In 属性留空)。

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

提示:

此外,如果您已将笔记组织到多个根文件夹(个人、工作等...)中,您可以在每个文件夹中复制多个此类快捷方式,以使用它们自己的默认目录打开各种 emacs 实例。

【讨论】:

【参考方案2】:

由于最烦人的事情是,当您使用快捷方式时,Windows Emacs 会将您转储到 system32,但希望其他所有情况都能正常工作,所以只需使用一点 elisp...

(when (string

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

【讨论】:

【参考方案3】:

您没有这么说,但听起来您是从 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 的正常命令行行为。

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

【讨论】:

是的,我在 windows 上使用 emacs。 这也适用于 MacOS。我将此添加到我的 .emacs 中:(setq default-directory (concat (getenv "HOME") "/")) 如果你想让 Emacs 在那个目录的 Dired 中启动,那么除了把它放在 Start In 字段中之外,在 Target 字段的末尾添加它,在一个或多个之后空格,用双引号括起来 (")。例如:"d:\path\to\the\folder".【参考方案4】:

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

现在,我按照建议运行了 emacs-23.3\bin\addpm.exe 程序,Windows-8 屏幕(微软的可怕发明)出现了一个指向 Emacs 的图标链接。但是您必须再次更改“开始于”属性。 (它与桌面中的不同)。 只需右键单击,在底部栏中选择“打开文件位置”(或类似的,我用我的语言完成的),您将被带到带有新快捷方式的文件夹,您可以(必须)在其中更改属性“开始于:”。

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

【讨论】:

【参考方案5】:

要在 Dired 和 shell 中将默认目录更改为 DESKTOP,请将其放入 ~/.emacs: ;;这适用于 Windows XP。 (setq default-directory (concat "C:\Documents and Settings\MY_ACCOUNT\DESKTOP\"))

【讨论】:

【参考方案6】:

您可以键入“cd”emacs 命令。 ( M-x cd ) 将默认文件夹更改为一次性。

【讨论】:

【参考方案7】:

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

/桌面/空白文件

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

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

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

【讨论】:

【参考方案8】:

我在 Windows XP 下使用 emacs 22.2.1,上面的答案帮助我在我想要命令 C-x C-f 的 minibuffer 中获得响应。最初我得到 “查找文件:C:\Program Files\emacs\bin/”,如 Anton。 我将 HOME 设置为“C:\Documents and settings\USER NAME\My Documents”。 我想要在 minibuffer 中对 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 时,我得到了我想要的确切响应。

【讨论】:

+1 用于提及禁止启动屏幕。我发现这是我的 Windows 10 系统的关键。我在相关问题***.com/a/38435697/823636上发布了我的答案【参考方案9】:

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

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

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

【讨论】:

【参考方案10】:

默认文件夹实际上与缓冲区的当前工作文件夹相同,即,您使用的每个文件都可能不同。假设您正在使用的文件位于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,都将该目录设为默认目录。

【讨论】:

【参考方案11】:

在 Windows 上,您可以使用快捷方式来完成。

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

【讨论】:

【参考方案12】:

我放了

(cd "c:/cvsroot/")

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

【讨论】:

以上是关于更改 Emacs 中的默认文件夹的主要内容,如果未能解决你的问题,请参考以下文章

从 ;; 更改 emacs 注释标记到 //

我可以更改 emacs 的默认编译命令吗?

如何修复 emacs 24 中的 javascript 模式更改?

当磁盘上的文件发生更改时,如何让 Emacs 自动刷新所有缓冲区?

emacs 中 grep-find 的默认字符串

如何更改 Emacs 的默认字体大小和字体类型?