关于自定义:更改Emacs中的默认文件夹

关于自定义:更改Emacs中的默认文件夹

Changing the default folder in Emacs

我对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字段更改为所需目录。


您没有这么说,但是听起来您是从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 =当前工作目录= PWD =当前工作目录。在命令行中,它比在GUI中更有意义。


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

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

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


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


我放了

1
(cd"c:/cvsroot/")

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


默认文件夹实际上与缓冲区的当前工作文件夹相同,即,您使用的每个文件都可以不同。假设您正在使用的文件位于C:\\dir_a中,则该缓冲区的工作目录默认为C:\\dir_a。您可以使用M-x cd进行更改,然后键入您想用作默认目录的任何目录(默认情况下,我指的是在执行C-x C-f时将显示的目录)。

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

最后,您可以按照Vadim的建议进行操作

1
(cd"c:/dir_a/")

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


我在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的响应是"查找文件:?/"。
通过向我的.emacs文件添加(setq默认目录" C:/ Documents and Settings / USER NAME / My Documents"),我得到了以下响应:"查找文件:C:\ Documents and settings \ USER NAME \ My Documents /",其功能与"查找文件:?/"相同。
但是,我注意到了另一点。"选项"下的"自定义Emacs"使我无法启动屏幕。现在,当我打开emacs时,我立即进入暂存缓冲区。当我在暂存缓冲区中键入C-x C-f时,会得到我想要的确切响应。


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

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


要将默认目录更改为Dired中的DESKTOP和shell,请将其放在?/ .emacs中:

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


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

/桌面/空白文件

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

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

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


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

(当(字符串<" C:\ WINDOWS \ system32"默认目录)(setq默认目录"?/")时)

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


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

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

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


推荐阅读

    linux桌面可视命令?

    linux桌面可视命令?,工具,系统,发行,密码,地方,服务,管理,技术,终端,命令,Lin

    创建自定义命令linux?

    创建自定义命令linux?,工具,状态,命令,系统,代码,标准,数据,位置,电脑,材料,L

    linux自定义命令行?

    linux自定义命令行?,系统,工作,名称,百度,命令,管理,工具,位置,信息,终端,Lin

    linux配置自定义命令?

    linux配置自定义命令?,服务,系统,状态,策略,周期,地方,标准,新增,环境,工具,L

    linux命令行返回桌面?

    linux命令行返回桌面?,系统,密码,状态,暂停,环境,终端,信息,命令,界面,字符,l

    linuxcd命令桌面?

    linuxcd命令桌面?,系统,位置,密码,电脑,管理,环境,情况,名称,信息,命令,linux

    linux设备加载命令?

    linux设备加载命令?,系统,设备,信息,电脑,第一,命令,文件,分区,磁盘,详细信

    linux桌面命令在哪里?

    linux桌面命令在哪里?,系统,密码,环境,位置,首页,终端,状态,信息,工具,电脑,l

    linux网卡加载命令行?

    linux网卡加载命令行?,系统,地址,代码,网络,设备,电脑,名称,网卡,技术指标,

    自定义命令linux命令?

    自定义命令linux命令?,工具,系统,数据,命令,新增,代理,通信,地方,信息,时间,

    linux退出桌面的命令?

    linux退出桌面的命令?,密码,系统,状态,环境,信息,工具,传播,终端,界面,控制

    linux命令刷新加载?

    linux命令刷新加载?,系统,下来,工具,网上,命令,终端,环境变量,以下,文件,路

    linux默认命令删除?

    linux默认命令删除?,系统,软件,名称,档案,命令,文件,目录,不了,电脑,文件夹,

    linux自定义简写命令?

    linux自定义简写命令?,系统,工作,命令,标准,地址,基础,信息,软件,目录,文件,

    linux命令简写自定义?

    linux命令简写自定义?,系统,状态,命令,代码,工具,发行,标准,软件,文件,别名,L

    linuxrm命令默认?

    linuxrm命令默认?,系统,命令,档案,工作,文件,目录,名称,文件夹,选项,子目录,l

    回到桌面linux命令?

    回到桌面linux命令?,密码,电脑,系统,位置,环境,底部,终端,桌面,状态,信息,lin

    linux命令默认加后缀?

    linux命令默认加后缀?,系统,文件,密码,通用,设备,命令,目录,后缀,表示,程序,l

    linux换桌面背景命令?

    linux换桌面背景命令?,环境,软件,工具,时间,基础,系统,数据,管理,图片,公共,G

    加载linux内核的命令?

    加载linux内核的命令?,系统,信息,地址,电脑,发行,设备,简介,平台,发展,基础,l