3

在自定义 Emacs 时,我应该如何考虑 elisp 函数cdcd-absoluteelisp 变量?default-directory我的经验使我相信会cd-absolute更改 emacs 进程本身的目录(跨缓冲区的全局设置default-directory,而不是本地设置),而cd并且default-directory是缓冲区本地的。但是,内置的帮助不足以让我对自己的理解感到舒服,而且我看到的行为让我怀疑在我正在访问的缓冲区中cd-absolute被覆盖。default-directory

结束编辑

如果我在这里没有收到答案,我将不得不对help-gnu-emacs列表进行自己的研究,并且只有在万不得已的情况下,我才不得不阅读源代码。

4

1 回答 1

2

我认为你误解了它的default-directory工作原理。default-directory你的设置.emacs对大多数缓冲区没有影响。访问文件的缓冲区的本地值default-directory会自动设置为存储访问文件的目录。这将覆盖之前设置的任何值default-directory

如果您通过cd(或cd-absolute)更改缓冲区的当前目录,这将default-directory只为该缓冲区设置。如果您随后打开一个新文件,default-directory则新缓冲区将设置为新文件的目录。

如果您打开一个不访问文件的新缓冲区,那么default-directory这个新缓冲区的值将与前一个缓冲区的值相同。cd这是结果将应用于缓冲区而不是调用它的缓冲区的唯一情况。

cd-absolute不适合交互式使用。据我所知,它是一个方便的函数,它的不同之处cd仅在于路径被视为绝对路径,而不是相对路径。

鉴于这一切,你想做什么?

于 2013-10-18T17:48:59.607 回答