【发布时间】:2011-09-21 18:47:03
【问题描述】:
我在 Windows 上使用 emacs。我想知道如何更改 emacs 中的默认“查找文件:”路径,即当我们按“Cx Cf”时,我希望默认文件路径指向我的 Documents 目录而不是“c:\emacs-**\ bin/"。
【问题讨论】:
我在 Windows 上使用 emacs。我想知道如何更改 emacs 中的默认“查找文件:”路径,即当我们按“Cx Cf”时,我希望默认文件路径指向我的 Documents 目录而不是“c:\emacs-**\ bin/"。
【问题讨论】:
在访问文件的缓冲区中,访问新文件时看到的默认路径 (C-x C-f) 是包含当前缓冲区文件的目录。
为了用更合理的方式覆盖值“c:\emacs-**\bin/”,请在 .emacs 文件中设置 default-directory 变量:
(setq default-directory "/path/to/documents/directory/")
请注意,路径值应以斜杠(或 Windows 上的反斜杠)结尾。
但是,您可能还需要考虑更改 HOME 环境变量的值,因为默认情况下,这是变量 default-directory 在启动时指向的值(除非设置为如上所示的其他值)。
【讨论】:
C-x C-f总是首先查看特定的默认目录,我同意将该快捷方式绑定到您自己的自定义函数可能是有意义的。但是,如果您在启动 C-x C-f 后第一次执行 Emacs 标准行为 except 时对它感到满意(它使用您不喜欢的目录),那么我的回答将是帮助你。
变量 'default-directory' 是“当前”目录(用于当前缓冲区)。命令“cd”更改目录,访问任何文件或目录(例如使用 Dired)更改了该缓冲区的“默认目录”。
您可以在给定目录中启动 Emacs,方法是在命令行中传递该目录。您也可以使用 Windows 快捷方式来执行此操作。您可以在 Dired 中使用快捷方式访问该目录。
快捷方式信息示例:
目标: C:\Emacs\bin\runemacs.exe "C:\my\favorite\folder"
开始于: C:\my\favorite\folder
【讨论】:
应该这样做:
(global-set-key (kbd "C-x C-f") (lambda () (interactive)
(cd "somePathHere")
(call-interactively 'find-file)))
(将 somePathHere 替换为您的文档目录的路径)
【讨论】:
C-x C-f 始终从某个目录开始。设置default-directory 将不会 这样做,因为它是缓冲区本地的,并且会在您读取或写入不同目录时立即更改。您必须将钩子添加到find-file、dired 和任何其他设置它的东西。并且更改每个缓冲区中的设置几乎不是更改键绑定行为的“优雅”方式!如果您希望键绑定做一些不同的事情,将其重新绑定到自定义包装器非常简单、万无一失并且不会干扰其他任何事情。
defun inline(不过最好在顶层定义它,这样帮助系统可以找到定义)。
您必须将环境变量 HOME 重新定义为新的默认目录。
【讨论】:
HOME 用于很多事情,而不仅仅是您的 Emacs 默认目录。弄乱它可能会使许多事情变得不可预测。 -1